[apps/sequence] Unable linked sequence (return NAN when evaluate)

Change-Id: I0024e3912bb038343413bcfea78fc4cf18a739f7
This commit is contained in:
Émilie Feral
2017-05-10 11:17:32 +02:00
parent 5092388a3e
commit 0b9abfa869
5 changed files with 59 additions and 37 deletions

View File

@@ -238,7 +238,7 @@ float Sequence::evaluateAtAbscissa(float x, Poincare::Context * context) const {
int start = m_indexBuffer[0] < 0 || m_indexBuffer[0] > n ? 0 : m_indexBuffer[0];
float un = m_indexBuffer[0] < 0 || m_indexBuffer[0] > n ? m_firstInitialConditionExpression->approximate(*context) : m_buffer[0];
for (int i = start; i < n; i++) {
subContext.setSequenceRankValue(un, 0);
subContext.setValueForSequenceRank(un, name(), 0);
Poincare::Complex e = Poincare::Complex::Float(i);
subContext.setExpressionForSymbolName(&e, &nSymbol);
un = m_expression->approximate(subContext);
@@ -268,8 +268,8 @@ float Sequence::evaluateAtAbscissa(float x, Poincare::Context * context) const {
float un = m_indexBuffer[0] >= 0 && m_indexBuffer[0] < n && m_indexBuffer[1] > 0 && m_indexBuffer[1] <= n && m_indexBuffer[0] + 1 == m_indexBuffer[1] ? m_buffer[0] : m_firstInitialConditionExpression->approximate(*context);
float un1 = m_indexBuffer[0] >= 0 && m_indexBuffer[0] < n && m_indexBuffer[1] > 0 && m_indexBuffer[1] <= n && m_indexBuffer[0] + 1 == m_indexBuffer[1] ? m_buffer[1] : m_secondInitialConditionExpression->approximate(*context);
for (int i = start; i < n-1; i++) {
subContext.setSequenceRankValue(un, 0);
subContext.setSequenceRankValue(un1, 1);
subContext.setValueForSequenceRank(un, name(), 0);
subContext.setValueForSequenceRank(un1, name(), 1);
Poincare::Complex e = Poincare::Complex::Float(i);
subContext.setExpressionForSymbolName(&e, &nSymbol);
un = un1;