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_ |
Definition at line 59 of file SundanceEvaluator.hpp.
Evaluator::Evaluator | ( | ) |
Definition at line 51 of file SundanceEvaluator.cpp.
virtual Sundance::Evaluator::~Evaluator | ( | ) | [inline, virtual] |
Definition at line 66 of file SundanceEvaluator.hpp.
void Sundance::Evaluator::addClient | ( | ) | [inline] |
Add one to the number of clients.
Definition at line 89 of file SundanceEvaluator.hpp.
References numClients_.
void Evaluator::addConstantIndex | ( | int | index, | |
int | constantIndex | |||
) |
Definition at line 100 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 109 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 100 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 122 of file SundanceEvaluator.hpp.
References constantIndices_.
Referenced by Sundance::SubtypeEvaluator< ExprType >::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 64 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::CellDiameterExprEvaluator, Sundance::CellVectorEvaluator, Sundance::ChainRuleEvaluator, Sundance::ConstantEvaluator, Sundance::CoordExprEvaluator, Sundance::CurveNormEvaluator, Sundance::DerivOfSymbFuncEvaluator, Sundance::DiffOpEvaluator, Sundance::DiscreteFuncElementEvaluator, Sundance::EFDEEvaluator, Sundance::NullEvaluator, Sundance::ProductEvaluator, Sundance::SumEvaluator, Sundance::SymbolicFuncElementEvaluator, and Sundance::UnaryMinusEvaluator.
Referenced by eval().
bool Sundance::Evaluator::isOne | ( | const double & | x | ) | const [inline, protected] |
bool Sundance::Evaluator::isOne | ( | int | x | ) | const [inline, protected] |
Definition at line 113 of file SundanceEvaluator.hpp.
Referenced by Sundance::DiffOpEvaluator::internalEval().
bool Sundance::Evaluator::isZero | ( | const double & | x | ) | const [inline, protected] |
Definition at line 119 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 110 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::BinaryEvaluator< ExprType >, Sundance::ChainRuleEvaluator, Sundance::DerivOfSymbFuncEvaluator, Sundance::DiffOpEvaluator, Sundance::SymbolicFuncElementEvaluator, Sundance::UnaryEvaluator< ExprType >, Sundance::UserDefOpEvaluator, Sundance::BinaryEvaluator< SumExpr >, Sundance::BinaryEvaluator< ProductExpr >, Sundance::UnaryEvaluator< DerivOfSymbFunc >, Sundance::UnaryEvaluator< DiffOp >, Sundance::UnaryEvaluator< ExplicitFunctionalDerivativeElement >, and Sundance::UnaryEvaluator< UnaryMinus >.
Definition at line 80 of file SundanceEvaluator.hpp.
References numCalls_.
Referenced by Sundance::SymbolicFuncElementEvaluator::resetNumCalls().
const Sundance::Map<int, int>& Sundance::Evaluator::vectorIndexMap | ( | ) | const [inline] |
Definition at line 104 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 125 of file SundanceEvaluator.hpp.
References vectorIndices_.
Referenced by Sundance::SubtypeEvaluator< ExprType >::vectorResultDeriv().
Sundance::Map<int, int> Sundance::Evaluator::constantIndexMap_ [private] |
Definition at line 137 of file SundanceEvaluator.hpp.
Referenced by addConstantIndex(), and constantIndexMap().
Array<int> Sundance::Evaluator::constantIndices_ [private] |
Definition at line 143 of file SundanceEvaluator.hpp.
Referenced by addConstantIndex(), and constantIndices().
Array<double> Sundance::Evaluator::constantResultCache_ [mutable, private] |
int Sundance::Evaluator::numCalls_ [mutable, private] |
int Sundance::Evaluator::numClients_ [private] |
Definition at line 129 of file SundanceEvaluator.hpp.
Referenced by addClient(), eval(), and numClients().
Sundance::Map<int, int> Sundance::Evaluator::vectorIndexMap_ [private] |
Definition at line 139 of file SundanceEvaluator.hpp.
Referenced by addVectorIndex(), and vectorIndexMap().
Array<int> Sundance::Evaluator::vectorIndices_ [private] |
Definition at line 141 of file SundanceEvaluator.hpp.
Referenced by addVectorIndex(), and vectorIndices().
Array<RCP<EvalVector> > Sundance::Evaluator::vectorResultCache_ [mutable, private] |