mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
This allows sequences to be used in functions by calling u(x) Change-Id: I336e84a19bf9b3dd0f2e435d1aaebda3c9e71ec8
32 lines
1.0 KiB
C++
32 lines
1.0 KiB
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::expressionForSymbolAbstract(const Poincare::SymbolAbstract & symbol, bool clone, float unknownSymbolValue ) {
|
|
if (symbol.type() == ExpressionNode::Type::Symbol && Symbol::isRegressionSymbol(symbol.name(), nullptr)) {
|
|
const char * seriesName = 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>::Builder(m_store->get(series, storeI, m_seriesPairIndex));
|
|
} else {
|
|
return ContextWithParent::expressionForSymbolAbstract(symbol, clone);
|
|
}
|
|
}
|
|
|
|
}
|