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