From f58633b03c65e5f21f276530f274d33f0bef4f17 Mon Sep 17 00:00:00 2001 From: Hugo Saint-Vignes Date: Fri, 23 Oct 2020 17:37:48 +0200 Subject: [PATCH] [apps/regression] Add escape case if data is not suitable for regression Change-Id: Ie2e028a5030e1b0d3f133efdde971645d5b4687b --- apps/regression/store.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/regression/store.cpp b/apps/regression/store.cpp index a794ef3c6..e77e7547f 100644 --- a/apps/regression/store.cpp +++ b/apps/regression/store.cpp @@ -349,7 +349,12 @@ double Store::computeDeterminationCoefficient(int series, Poincare::Context * gl const int numberOfPairs = numberOfPairsOfSeries(series); for (int k = 0; k < numberOfPairs; k++) { // Difference between the observation and the estimated value of the model - double residual = m_data[series][1][k] - yValueForXValue(series, m_data[series][0][k], globalContext); + double evaluation = yValueForXValue(series, m_data[series][0][k], globalContext); + if (std::isnan(evaluation) || std::isinf(evaluation)) { + // Data Not Suitable for evaluation + return NAN; + } + double residual = m_data[series][1][k] - evaluation; ssr += residual * residual; // Difference between the observation and the overall observations mean double difference = m_data[series][1][k] - mean;