Public Member Functions | |
| Evaluator () | |
| virtual | ~Evaluator () |
| void | eval (const EvalManager &mgr, Array< double > &constantResults, Array< RCP< EvalVector > > &vectorResults) const |
| virtual void | resetNumCalls () const |
| virtual void | internalEval (const EvalManager &mgr, Array< double > &constantResults, Array< RCP< EvalVector > > &vectorResults) const =0 |
| void | addClient () |
| void | addConstantIndex (int index, int constantIndex) |
| void | addVectorIndex (int index, int vectorIndex) |
| const Sundance::Map< int, int > & | constantIndexMap () const |
| const Sundance::Map< int, int > & | vectorIndexMap () const |
Protected Member Functions | |
| int | numClients () const |
| bool | isOne (int x) const |
| bool | isOne (const double &x) const |
| bool | isZero (const double &x) const |
| const Array< int > & | constantIndices () const |
| const Array< int > & | vectorIndices () const |
Private Attributes | |
| int | numClients_ |
| int | numCalls_ |
| Array< RCP< EvalVector > > | vectorResultCache_ |
| Array< double > | constantResultCache_ |
| Sundance::Map< int, int > | constantIndexMap_ |
| Sundance::Map< int, int > | vectorIndexMap_ |
| Array< int > | vectorIndices_ |
| Array< int > | constantIndices_ |
Base class for evaluator objects. Each EvaluatableExpr type will have an associated Evaluator subtype.
Definition at line 70 of file SundanceEvaluator.hpp.
Definition at line 62 of file SundanceEvaluator.cpp.
| virtual Sundance::Evaluator::~Evaluator | ( | ) | [inline, virtual] |
Definition at line 77 of file SundanceEvaluator.hpp.
| void Sundance::Evaluator::addClient | ( | ) | [inline] |
Add one to the number of clients.
Definition at line 100 of file SundanceEvaluator.hpp.
References numClients_.
| void Evaluator::addConstantIndex | ( | int | index, |
| int | constantIndex | ||
| ) |
Definition at line 111 of file SundanceEvaluator.cpp.
References constantIndexMap_, constantIndices_, Sundance::Map< Key, Value, Compare >::containsKey(), and Sundance::Map< Key, Value, Compare >::put().
Referenced by Sundance::ConstantEvaluator::ConstantEvaluator(), Sundance::CoordExprEvaluator::CoordExprEvaluator(), Sundance::EFDEEvaluator::EFDEEvaluator(), Sundance::ChainRuleEvaluator::init(), Sundance::ProductEvaluator::ProductEvaluator(), and Sundance::SumEvaluator::SumEvaluator().
| void Evaluator::addVectorIndex | ( | int | index, |
| int | vectorIndex | ||
| ) |
Definition at line 120 of file SundanceEvaluator.cpp.
References Sundance::Map< Key, Value, Compare >::containsKey(), Sundance::Map< Key, Value, Compare >::put(), vectorIndexMap_, and vectorIndices_.
Referenced by Sundance::CellDiameterExprEvaluator::CellDiameterExprEvaluator(), Sundance::CellVectorEvaluator::CellVectorEvaluator(), Sundance::CoordExprEvaluator::CoordExprEvaluator(), Sundance::CurveNormEvaluator::CurveNormEvaluator(), Sundance::EFDEEvaluator::EFDEEvaluator(), Sundance::ChainRuleEvaluator::init(), Sundance::ProductEvaluator::ProductEvaluator(), and Sundance::SumEvaluator::SumEvaluator().
| const Sundance::Map<int, int>& Sundance::Evaluator::constantIndexMap | ( | ) | const [inline] |
Definition at line 111 of file SundanceEvaluator.hpp.
References constantIndexMap_.
Referenced by Sundance::NonlinearUnaryOpEvaluator::NonlinearUnaryOpEvaluator(), and Sundance::ProductEvaluator::ProductEvaluator().
| const Array<int>& Sundance::Evaluator::constantIndices | ( | ) | const [inline, protected] |
Definition at line 133 of file SundanceEvaluator.hpp.
References constantIndices_.
Referenced by Sundance::SubtypeEvaluator< DiffOp >::constantResultDeriv().
| void Evaluator::eval | ( | const EvalManager & | mgr, |
| Array< double > & | constantResults, | ||
| Array< RCP< EvalVector > > & | vectorResults | ||
| ) | const |
Client-level evaluation method. Computes new results on the first call, makes copies on subsequent calls up to the last client, and finally returns the original result vector upon the last client's call.
Definition at line 75 of file SundanceEvaluator.cpp.
References constantResultCache_, internalEval(), numCalls_, numClients_, SUNDANCE_VERB_MEDIUM, and vectorResultCache_.
| virtual void Sundance::Evaluator::internalEval | ( | const EvalManager & | mgr, |
| Array< double > & | constantResults, | ||
| Array< RCP< EvalVector > > & | vectorResults | ||
| ) | const [pure virtual] |
Implemented in Sundance::EFDEEvaluator, Sundance::SymbolicFuncElementEvaluator, Sundance::CellDiameterExprEvaluator, Sundance::CellVectorEvaluator, Sundance::CoordExprEvaluator, Sundance::DerivOfSymbFuncEvaluator, Sundance::DiffOpEvaluator, Sundance::ProductEvaluator, Sundance::SumEvaluator, Sundance::UnaryMinusEvaluator, Sundance::DiscreteFuncElementEvaluator, Sundance::ChainRuleEvaluator, Sundance::ConstantEvaluator, Sundance::CurveNormEvaluator, and Sundance::NullEvaluator.
Referenced by eval().
| bool Sundance::Evaluator::isOne | ( | int | x | ) | const [inline, protected] |
Definition at line 124 of file SundanceEvaluator.hpp.
Referenced by Sundance::DiffOpEvaluator::internalEval().
| bool Sundance::Evaluator::isOne | ( | const double & | x | ) | const [inline, protected] |
Definition at line 127 of file SundanceEvaluator.hpp.
References isZero().
| bool Sundance::Evaluator::isZero | ( | const double & | x | ) | const [inline, protected] |
Definition at line 130 of file SundanceEvaluator.hpp.
Referenced by Sundance::DiffOpEvaluator::internalEval(), and isOne().
| int Sundance::Evaluator::numClients | ( | ) | const [inline, protected] |
Return the number of clients that will require results from this evaluator
Definition at line 121 of file SundanceEvaluator.hpp.
References numClients_.
| virtual void Sundance::Evaluator::resetNumCalls | ( | ) | const [inline, virtual] |
Reset the number of calls to zero. This should be called at the beginning of every new evaluation cycle.
Reimplemented in Sundance::UnaryEvaluator< ExprType >, Sundance::UnaryEvaluator< UnaryMinus >, Sundance::UnaryEvaluator< ExplicitFunctionalDerivativeElement >, Sundance::UnaryEvaluator< DerivOfSymbFunc >, Sundance::UnaryEvaluator< DiffOp >, Sundance::ChainRuleEvaluator, Sundance::SymbolicFuncElementEvaluator, Sundance::UserDefOpEvaluator, Sundance::BinaryEvaluator< ExprType >, Sundance::BinaryEvaluator< ProductExpr >, Sundance::BinaryEvaluator< SumExpr >, Sundance::DerivOfSymbFuncEvaluator, and Sundance::DiffOpEvaluator.
Definition at line 91 of file SundanceEvaluator.hpp.
References numCalls_.
Referenced by Sundance::Assembler::assemblyLoop(), and Sundance::SymbolicFuncElementEvaluator::resetNumCalls().
| const Sundance::Map<int, int>& Sundance::Evaluator::vectorIndexMap | ( | ) | const [inline] |
Definition at line 115 of file SundanceEvaluator.hpp.
References vectorIndexMap_.
Referenced by Sundance::NonlinearUnaryOpEvaluator::NonlinearUnaryOpEvaluator(), and Sundance::ProductEvaluator::ProductEvaluator().
| const Array<int>& Sundance::Evaluator::vectorIndices | ( | ) | const [inline, protected] |
Definition at line 136 of file SundanceEvaluator.hpp.
References vectorIndices_.
Referenced by Sundance::SubtypeEvaluator< DiffOp >::vectorResultDeriv().
Sundance::Map<int, int> Sundance::Evaluator::constantIndexMap_ [private] |
Definition at line 148 of file SundanceEvaluator.hpp.
Referenced by addConstantIndex(), and constantIndexMap().
Array<int> Sundance::Evaluator::constantIndices_ [private] |
Definition at line 154 of file SundanceEvaluator.hpp.
Referenced by addConstantIndex(), and constantIndices().
Array<double> Sundance::Evaluator::constantResultCache_ [mutable, private] |
Definition at line 146 of file SundanceEvaluator.hpp.
Referenced by eval().
int Sundance::Evaluator::numCalls_ [mutable, private] |
Definition at line 142 of file SundanceEvaluator.hpp.
Referenced by eval(), and resetNumCalls().
int Sundance::Evaluator::numClients_ [private] |
Definition at line 140 of file SundanceEvaluator.hpp.
Referenced by addClient(), eval(), and numClients().
Sundance::Map<int, int> Sundance::Evaluator::vectorIndexMap_ [private] |
Definition at line 150 of file SundanceEvaluator.hpp.
Referenced by addVectorIndex(), and vectorIndexMap().
Array<int> Sundance::Evaluator::vectorIndices_ [private] |
Definition at line 152 of file SundanceEvaluator.hpp.
Referenced by addVectorIndex(), and vectorIndices().
Array<RCP<EvalVector> > Sundance::Evaluator::vectorResultCache_ [mutable, private] |
Definition at line 144 of file SundanceEvaluator.hpp.
Referenced by eval().