diff --git a/apps/regression/regression_context.cpp b/apps/regression/regression_context.cpp index 6499e64fc..b1faf2eee 100644 --- a/apps/regression/regression_context.cpp +++ b/apps/regression/regression_context.cpp @@ -1,5 +1,4 @@ #include "regression_context.h" -#include #include #include @@ -21,10 +20,8 @@ const Expression * RegressionContext::expressionForSymbol(const Symbol * symbol) assert(m_seriesPairIndex >= 0); assert(m_seriesPairIndex < m_store->numberOfPairsOfSeries(series)); - - Expression * result = new Decimal(m_store->get(series, storeI, m_seriesPairIndex)); - assert(result != nullptr); - return result; + m_value = Complex::Float(m_store->get(series, storeI, m_seriesPairIndex)); + return &m_value; } else { return m_parentContext->expressionForSymbol(symbol); } diff --git a/apps/shared/store_context.h b/apps/shared/store_context.h index 7b0513fb7..7284a84a5 100644 --- a/apps/shared/store_context.h +++ b/apps/shared/store_context.h @@ -2,7 +2,9 @@ #define SHARED_STORE_CONTEXT_H #include +#include #include "double_pair_store.h" +#include namespace Shared { @@ -12,7 +14,8 @@ public: Poincare::Context(), m_store(store), m_seriesPairIndex(-1), - m_parentContext(nullptr) + m_parentContext(nullptr), + m_value(Poincare::Complex::Float(NAN)) {} void setParentContext(Poincare::Context * parentContext) { m_parentContext = parentContext; } void setSeriesPairIndex(int j) { m_seriesPairIndex = j; } @@ -21,6 +24,7 @@ protected: Shared::DoublePairStore * m_store; int m_seriesPairIndex; Poincare::Context * m_parentContext; + Poincare::Complex m_value; }; } diff --git a/apps/statistics/statistics_context.cpp b/apps/statistics/statistics_context.cpp index 301345d7c..5cb4ee356 100644 --- a/apps/statistics/statistics_context.cpp +++ b/apps/statistics/statistics_context.cpp @@ -1,5 +1,4 @@ #include "statistics_context.h" -#include #include #include @@ -21,10 +20,8 @@ const Expression * StatisticsContext::expressionForSymbol(const Symbol * symbol) assert(m_seriesPairIndex >= 0); assert(m_seriesPairIndex < m_store->numberOfPairsOfSeries(series)); - - Expression * result = new Decimal(m_store->get(series, storeI, m_seriesPairIndex)); - assert(result != nullptr); - return result; + m_value = Complex::Float(m_store->get(series, storeI, m_seriesPairIndex)); + return &m_value; } else { return m_parentContext->expressionForSymbol(symbol); }