[poincare] SymbolAbstract is parent of Symbol and Function

This commit is contained in:
Léa Saviot
2018-10-08 12:05:39 +02:00
committed by Émilie Feral
parent c3043f47d4
commit 6197ebd4c5
15 changed files with 139 additions and 66 deletions

View File

@@ -15,10 +15,12 @@ CacheContext<T>::CacheContext(Context * parentContext) :
}
template<typename T>
const Expression CacheContext<T>::expressionForSymbol(const Symbol & symbol) {
const Expression CacheContext<T>::expressionForSymbol(const SymbolAbstract & symbol) {
// [u|v](n(+1)?)
if ((symbol.name()[0] == SequenceStore::k_sequenceNames[0][0] || symbol.name()[0] == SequenceStore::k_sequenceNames[1][0])
&& (strcmp(symbol.name()+1, "(n)") == 0 || strcmp(symbol.name()+1, "(n+1)") == 0)) {
if (symbol.type() == ExpressionNode::Type::Symbol
&& (symbol.name()[0] == SequenceStore::k_sequenceNames[0][0] || symbol.name()[0] == SequenceStore::k_sequenceNames[1][0])
&& (strcmp(symbol.name()+1, "(n)") == 0 || strcmp(symbol.name()+1, "(n+1)") == 0))
{
return Float<T>(m_values[nameIndexForSymbol(symbol)][rankIndexForSymbol(symbol)]);
}
return VariableContext::expressionForSymbol(symbol);