Public Member Functions | |
DiffOpEvaluator (const DiffOp *expr, const EvalContext &context) | |
virtual | ~DiffOpEvaluator () |
virtual void | internalEval (const EvalManager &mgr, Array< double > &constantResults, Array< RCP< EvalVector > > &vectorResults) const |
virtual void | resetNumCalls () const |
TEUCHOS_TIMER (evalTimer,"diff op evaluation") | |
Private Member Functions | |
Set< MultipleDeriv > | increasedDerivs (const MultipleDeriv &mu, const Set< MultipleDeriv > &W1, int verb) const |
Set< MultipleDeriv > | backedDerivs (const MultipleDeriv &mu, const Set< MultipleDeriv > &W1, int verb) const |
Deriv | remainder (const MultipleDeriv &big, const MultipleDeriv &little, int verb) const |
Private Attributes | |
Array< int > | isConstant_ |
Array< int > | resultIndices_ |
Array< Array< int > > | constantMonomials_ |
Array< Array< int > > | vectorMonomials_ |
Array< Array< int > > | constantFuncCoeffs_ |
Array< Array< int > > | vectorFuncCoeffs_ |
Array< const DiscreteFuncElementEvaluator * > | funcEvaluators_ |
Array< Array< int > > | constantCoeffFuncIndices_ |
Array< Array< int > > | constantCoeffFuncMi_ |
Array< Array< int > > | vectorCoeffFuncIndices_ |
Array< Array< int > > | vectorCoeffFuncMi_ |
Definition at line 16 of file SundanceDiffOpEvaluator.hpp.
DiffOpEvaluator::DiffOpEvaluator | ( | const DiffOp * | expr, | |
const EvalContext & | context | |||
) |
Definition at line 55 of file SundanceDiffOpEvaluator.cpp.
References Sundance::Set< Key, Compare >::begin(), Sundance::ConstantDeriv, Sundance::Map< Key, Value, Compare >::containsKey(), Sundance::Deriv::coordDerivDir(), Sundance::Set< Key, Compare >::end(), Sundance::SymbolicFuncElement::evalPt(), Sundance::EvaluatableExpr::evaluator(), Sundance::MultiIndex::firstOrderDirection(), Sundance::Map< Key, Value, Compare >::get(), Sundance::DiscreteFuncElementEvaluator::hasMultiIndex(), Sundance::Set< Key, Compare >::intersection(), Sundance::Deriv::isCoordDeriv(), Sundance::SpatialDerivSpecifier::isIdentity(), Sundance::SpatialDerivSpecifier::isPartial(), Sundance::SpatialDerivSpecifier::mi(), Sundance::DiffOp::mi(), Sundance::DiscreteFuncElementEvaluator::miIndex(), Sundance::Deriv::opOnFunc(), Sundance::MultipleDeriv::order(), Sundance::Map< Key, Value, Compare >::put(), Sundance::EvalContext::setupVerbosity(), Sundance::Set< Key, Compare >::size(), SUNDANCE_MSG1, SUNDANCE_MSG2, SUNDANCE_MSG3, Sundance::Deriv::symbFuncElem(), Sundance::MultiIndex::toString(), and Sundance::ExprBase::toString().
virtual Sundance::DiffOpEvaluator::~DiffOpEvaluator | ( | ) | [inline, virtual] |
Definition at line 24 of file SundanceDiffOpEvaluator.hpp.
Set< MultipleDeriv > DiffOpEvaluator::backedDerivs | ( | const MultipleDeriv & | mu, | |
const Set< MultipleDeriv > & | W1, | |||
int | verb | |||
) | const [private] |
Definition at line 379 of file SundanceDiffOpEvaluator.cpp.
References Sundance::Set< Key, Compare >::begin(), Sundance::Set< Key, Compare >::end(), Sundance::MultipleDeriv::factorOutDeriv(), Sundance::Deriv::fid(), Sundance::Deriv::isCoordDeriv(), Sundance::SpatialDerivSpecifier::mi(), Sundance::Deriv::opOnFunc(), Sundance::MultipleDeriv::order(), Sundance::Set< Key, Compare >::put(), Sundance::MultiSet< Key >::put(), and SUNDANCE_MSG3.
Set< MultipleDeriv > DiffOpEvaluator::increasedDerivs | ( | const MultipleDeriv & | mu, | |
const Set< MultipleDeriv > & | W1, | |||
int | verb | |||
) | const [private] |
Definition at line 359 of file SundanceDiffOpEvaluator.cpp.
References Sundance::Set< Key, Compare >::begin(), Sundance::Set< Key, Compare >::end(), Sundance::MultipleDeriv::order(), Sundance::Set< Key, Compare >::put(), Sundance::MultiSet< Key >::put(), and SUNDANCE_MSG3.
void DiffOpEvaluator::internalEval | ( | const EvalManager & | mgr, | |
Array< double > & | constantResults, | |||
Array< RCP< EvalVector > > & | vectorResults | |||
) | const [virtual] |
Implements Sundance::Evaluator.
Definition at line 419 of file SundanceDiffOpEvaluator.cpp.
References Sundance::UnaryEvaluator< DiffOp >::argSparsitySuperset(), constantCoeffFuncIndices_, constantCoeffFuncMi_, constantFuncCoeffs_, constantMonomials_, Sundance::UnaryEvaluator< DiffOp >::evalOperand(), Sundance::SubtypeEvaluator< DiffOp >::expr(), funcEvaluators_, isConstant_, Sundance::Evaluator::isOne(), Sundance::Evaluator::isZero(), Playa::Out::os(), Sundance::EvalManager::popVector(), resultIndices_, Sundance::EvalManager::showResults(), Sundance::SubtypeEvaluator< DiffOp >::sparsity(), SUNDANCE_MSG1, SUNDANCE_MSG2, SUNDANCE_MSG3, SUNDANCE_MSG4, Sundance::ExprBase::toString(), vectorCoeffFuncIndices_, vectorCoeffFuncMi_, vectorFuncCoeffs_, vectorMonomials_, and Sundance::EvalManager::verb().
Deriv DiffOpEvaluator::remainder | ( | const MultipleDeriv & | big, | |
const MultipleDeriv & | little, | |||
int | verb | |||
) | const [private] |
Definition at line 339 of file SundanceDiffOpEvaluator.cpp.
References Sundance::MultipleDeriv::factorOutDeriv(), Sundance::MultipleDeriv::order(), and SUNDANCE_MSG5.
void DiffOpEvaluator::resetNumCalls | ( | ) | const [virtual] |
We need a specialized resetting method for diff op evaluators that also resets the discrete func evaluators used in the functional chain rule
Reimplemented from Sundance::UnaryEvaluator< DiffOp >.
Definition at line 634 of file SundanceDiffOpEvaluator.cpp.
References Sundance::UnaryEvaluator< DiffOp >::argEval(), and funcEvaluators_.
Sundance::DiffOpEvaluator::TEUCHOS_TIMER | ( | evalTimer | , | |
"diff op evaluation" | ||||
) |
Array<Array<int> > Sundance::DiffOpEvaluator::constantCoeffFuncIndices_ [private] |
Indices into the function evaluator table for the funcs appearing with constant coeffs in the chain rule
Definition at line 65 of file SundanceDiffOpEvaluator.hpp.
Referenced by internalEval().
Array<Array<int> > Sundance::DiffOpEvaluator::constantCoeffFuncMi_ [private] |
Indices into the list of multiindices for the funcs appearing with constant coeffs in the chain rule
Definition at line 69 of file SundanceDiffOpEvaluator.hpp.
Referenced by internalEval().
Array<Array<int> > Sundance::DiffOpEvaluator::constantFuncCoeffs_ [private] |
Array<Array<int> > Sundance::DiffOpEvaluator::constantMonomials_ [private] |
Array<const DiscreteFuncElementEvaluator*> Sundance::DiffOpEvaluator::funcEvaluators_ [private] |
Definition at line 61 of file SundanceDiffOpEvaluator.hpp.
Referenced by internalEval(), and resetNumCalls().
Array<int> Sundance::DiffOpEvaluator::isConstant_ [private] |
Array<int> Sundance::DiffOpEvaluator::resultIndices_ [private] |
Array<Array<int> > Sundance::DiffOpEvaluator::vectorCoeffFuncIndices_ [private] |
Indices into the function evaluator table for the funcs appearing with vector coeffs in the chain rule
Definition at line 73 of file SundanceDiffOpEvaluator.hpp.
Referenced by internalEval().
Array<Array<int> > Sundance::DiffOpEvaluator::vectorCoeffFuncMi_ [private] |
Indices into the list of multiindices for the funcs appearing with vector coeffs in the chain rule
Definition at line 77 of file SundanceDiffOpEvaluator.hpp.
Referenced by internalEval().
Array<Array<int> > Sundance::DiffOpEvaluator::vectorFuncCoeffs_ [private] |
Array<Array<int> > Sundance::DiffOpEvaluator::vectorMonomials_ [private] |