#ifndef SHARED_SEQUENCE_CACHE_CONTEXT_H #define SHARED_SEQUENCE_CACHE_CONTEXT_H #include #include #include #include "sequence_context.h" namespace Shared { template class SequenceCacheContext : public Poincare::ContextWithParent { public: SequenceCacheContext(SequenceContext * sequenceContext); const Poincare::Expression expressionForSymbolAbstract(const Poincare::SymbolAbstract & symbol, bool clone, float unknownSymbolValue = NAN) override; void setValueForSymbol(T value, const Poincare::Symbol & symbol); private: int nameIndexForSymbol(const Poincare::Symbol & symbol); int rankIndexForSymbol(const Poincare::Symbol & symbol); T m_values[MaxNumberOfSequences][MaxRecurrenceDepth]; SequenceContext * m_sequenceContext; }; } #endif