Files
Upsilon/apps/regression/regression_context.cpp
Lionel Debroux 1a8c6b6ae9 [poincare, escher, ion, apps] Split the huge umbrella header poincare.h, to reduce build time.
This should be a NFC, but surprisingly, it also reduces size... so what does it change ?
2018-10-23 11:49:09 +02:00

32 lines
914 B
C++

#include "regression_context.h"
#include <assert.h>
#include <string.h>
#include <poincare/float.h>
using namespace Poincare;
using namespace Shared;
namespace Regression {
const Expression RegressionContext::expressionForSymbol(const Symbol & symbol) {
if (Symbol::isRegressionSymbol(symbol.name())) {
const char * seriesName = Symbol::textForSpecialSymbols(symbol.name());
assert(strlen(seriesName) == 2);
int series = (int)(seriesName[1] - '0') - 1;
assert(series >= 0 && series < DoublePairStore::k_numberOfSeries);
assert((seriesName[0] == 'X') || (seriesName[0] == 'Y'));
int storeI = seriesName[0] == 'X' ? 0 : 1;
assert(m_seriesPairIndex >= 0);
assert(m_seriesPairIndex < m_store->numberOfPairsOfSeries(series));
return Float<double>(m_store->get(series, storeI, m_seriesPairIndex));
} else {
return m_parentContext->expressionForSymbol(symbol);
}
}
}