Public Member Functions | Protected Member Functions | Private Attributes
Sundance::Evaluator Class Reference
Inheritance diagram for Sundance::Evaluator:
Sundance::ObjectWithClassVerbosity< Evaluator > Playa::ObjectWithVerbosity Sundance::SubtypeEvaluator< CellDiameterExpr > Sundance::SubtypeEvaluator< CellVectorExpr > Sundance::SubtypeEvaluator< CoordExpr > Sundance::SubtypeEvaluator< CurveNormExpr > Sundance::SubtypeEvaluator< DerivOfSymbFunc > Sundance::SubtypeEvaluator< DiffOp > Sundance::SubtypeEvaluator< DiscreteFuncElement > Sundance::SubtypeEvaluator< ExplicitFunctionalDerivativeElement > Sundance::SubtypeEvaluator< ExprWithChildren > Sundance::SubtypeEvaluator< ProductExpr > Sundance::SubtypeEvaluator< SpatiallyConstantExpr > Sundance::SubtypeEvaluator< SumExpr > Sundance::SubtypeEvaluator< SymbolicFuncElement > Sundance::SubtypeEvaluator< UnaryMinus > Sundance::NullEvaluator Sundance::SubtypeEvaluator< ExprType >

List of all members.

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_

Detailed Description

Base class for evaluator objects. Each EvaluatableExpr type will have an associated Evaluator subtype.

Definition at line 70 of file SundanceEvaluator.hpp.


Constructor & Destructor Documentation

Definition at line 62 of file SundanceEvaluator.cpp.

virtual Sundance::Evaluator::~Evaluator ( ) [inline, virtual]

Definition at line 77 of file SundanceEvaluator.hpp.


Member Function Documentation

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 
)
void Evaluator::addVectorIndex ( int  index,
int  vectorIndex 
)
const Sundance::Map<int, int>& Sundance::Evaluator::constantIndexMap ( ) const [inline]
const Array<int>& Sundance::Evaluator::constantIndices ( ) const [inline, protected]
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]
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]
const Sundance::Map<int, int>& Sundance::Evaluator::vectorIndexMap ( ) const [inline]
const Array<int>& Sundance::Evaluator::vectorIndices ( ) const [inline, protected]

Member Data Documentation

Definition at line 148 of file SundanceEvaluator.hpp.

Referenced by addConstantIndex(), and constantIndexMap().

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().

Definition at line 140 of file SundanceEvaluator.hpp.

Referenced by addClient(), eval(), and numClients().

Definition at line 150 of file SundanceEvaluator.hpp.

Referenced by addVectorIndex(), and vectorIndexMap().

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().

Site Contact