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< ExprType > 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 59 of file SundanceEvaluator.hpp.


Constructor & Destructor Documentation

Evaluator::Evaluator (  ) 

Definition at line 51 of file SundanceEvaluator.cpp.

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

Definition at line 66 of file SundanceEvaluator.hpp.


Member Function Documentation

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 
)

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 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]

bool Sundance::Evaluator::isOne ( const double &  x  )  const [inline, protected]

Definition at line 116 of file SundanceEvaluator.hpp.

References isZero().

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]

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 137 of file SundanceEvaluator.hpp.

Referenced by addConstantIndex(), and constantIndexMap().

Definition at line 143 of file SundanceEvaluator.hpp.

Referenced by addConstantIndex(), and constantIndices().

Array<double> Sundance::Evaluator::constantResultCache_ [mutable, private]

Definition at line 135 of file SundanceEvaluator.hpp.

Referenced by eval().

int Sundance::Evaluator::numCalls_ [mutable, private]

Definition at line 131 of file SundanceEvaluator.hpp.

Referenced by eval(), and resetNumCalls().

Definition at line 129 of file SundanceEvaluator.hpp.

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

Definition at line 139 of file SundanceEvaluator.hpp.

Referenced by addVectorIndex(), and vectorIndexMap().

Definition at line 141 of file SundanceEvaluator.hpp.

Referenced by addVectorIndex(), and vectorIndices().

Array<RCP<EvalVector> > Sundance::Evaluator::vectorResultCache_ [mutable, private]

Definition at line 133 of file SundanceEvaluator.hpp.

Referenced by eval().

Site Contact