Public Member Functions | |
EvaluatableExpr () | |
virtual | ~EvaluatableExpr () |
const RCP< Evaluator > & | evaluator (const EvalContext &context) const |
virtual void | showSparsity (std::ostream &os, const EvalContext &context) const |
virtual int | countNodes () const |
virtual int | maxDiffOrderOnDiscreteFunctions () const |
virtual bool | hasDiscreteFunctions () const |
virtual bool | nodesHaveBeenCounted () const |
virtual Set< MultipleDeriv > | internalFindW (int order, const EvalContext &context) const =0 |
virtual Set< MultipleDeriv > | internalFindV (int order, const EvalContext &context) const |
virtual Set< MultipleDeriv > | internalFindC (int order, const EvalContext &context) const |
const Set< MultipleDeriv > & | findDerivSubset (int order, const DerivSubsetSpecifier &dss, const EvalContext &context) const |
const Set< MultipleDeriv > & | findDerivSubset (const DerivSubsetSpecifier &dss, const EvalContext &context) const |
const Set< MultipleDeriv > & | findW (int order, const EvalContext &context) const |
const Set< MultipleDeriv > & | findR (int order, const EvalContext &context) const |
const Set< MultipleDeriv > & | findV (int order, const EvalContext &context) const |
const Set< MultipleDeriv > & | findC (int order, const EvalContext &context) const |
const Set< MultipleDeriv > & | findW (const EvalContext &context) const |
const Set< MultipleDeriv > & | findR (const EvalContext &context) const |
const Set< MultipleDeriv > & | findV (const EvalContext &context) const |
const Set< MultipleDeriv > & | findC (const EvalContext &context) const |
virtual void | displayNonzeros (std::ostream &os, const EvalContext &context) const |
Set< MultipleDeriv > | setProduct (const Set< MultipleDeriv > &a, const Set< MultipleDeriv > &b) const |
Set< MultipleDeriv > | setDivision (const Set< MultipleDeriv > &a, const Set< MultipleDeriv > &b) const |
Set< MultiSet< int > > | setDivision (const Set< MultiSet< int > > &s, int index) const |
void | determineR (const EvalContext &context, const Array< Set< MultipleDeriv > > &RInput) const |
virtual RCP< Array< Set < MultipleDeriv > > > | internalDetermineR (const EvalContext &context, const Array< Set< MultipleDeriv > > &RInput) const |
const Set< MultipleDeriv > & | getR (int order, const EvalContext &context) const |
Array< Set< MultipleDeriv > > | computeInputR (const EvalContext &context, const Array< Set< MultiSet< int > > > &funcIDCombinations, const Array< Set< MultiIndex > > &spatialDerivs) const |
virtual void | registerSpatialDerivs (const EvalContext &context, const Set< MultiIndex > &miSet) const |
Evaluation | |
void | evaluate (const EvalManager &mgr, Array< double > &constantResults, Array< RCP< EvalVector > > &vectorResults) const |
Preprocessing | |
virtual void | setupEval (const EvalContext &context) const |
RCP< SparsitySuperset > | sparsitySuperset (const EvalContext &context) const |
Static Public Member Functions | |
static const EvaluatableExpr * | getEvalExpr (const Expr &expr) |
static int | maxFuncDiffOrder () |
static Time & | evaluationTimer () |
Protected Member Functions | |
void | registerEvaluator (const EvalContext &context, const RCP< Evaluator > &evaluator) const |
Map< EvalContext, RCP < Evaluator > > & | evaluators () const |
int | maxOrder (const Set< MultiIndex > &m) const |
const Set< MultiIndex > & | activeSpatialDerivs (const EvalContext &context) const |
std::string | derivType (const DerivSubsetSpecifier &dss) const |
void | printR (int verb, const RCP< Array< Set< MultipleDeriv > > > &R) const |
Static Protected Member Functions | |
static bool | isEvaluatable (const ExprBase *expr) |
Private Types | |
typedef OrderedQuartet < EvalContext, Set< MultiIndex > , Set< MultiSet< int > >, bool > | NonzeroSpecifier |
typedef Array< Map < EvalContext, Set < MultipleDeriv > > > | contextToDSSMap_ele_t |
Static Private Member Functions | |
static int | numDerivSubsetTypes () |
Private Attributes | |
Map< EvalContext, RCP < Evaluator > > | evaluators_ |
Map< EvalContext, RCP < SparsitySuperset > > | sparsity_ |
Array< int > | orderOfDependency_ |
Set< MultiSet< int > > | funcIDSet_ |
Set< int > | funcDependencies_ |
Set< NonzeroSpecifier > | knownNonzeros_ |
bool | nodesHaveBeenCounted_ |
Array< contextToDSSMap_ele_t > | contextToDSSMap_ |
bool | rIsReady_ |
Array< Map< EvalContext, Set < MultipleDeriv > > > | allOrdersMap_ |
Map< EvalContext, Set < MultiIndex > > | activeSpatialDerivMap_ |
Definition at line 75 of file SundanceEvaluatableExpr.hpp.
typedef Array<Map<EvalContext, Set<MultipleDeriv> > > Sundance::EvaluatableExpr::contextToDSSMap_ele_t [private] |
Definition at line 313 of file SundanceEvaluatableExpr.hpp.
typedef OrderedQuartet<EvalContext, Set<MultiIndex>, Set<MultiSet<int> >, bool> Sundance::EvaluatableExpr::NonzeroSpecifier [private] |
Definition at line 83 of file SundanceEvaluatableExpr.hpp.
Sundance::EvaluatableExpr::EvaluatableExpr | ( | ) |
Ctor is empty, but has some internal initialization to do and so must be called by all subclasses
virtual Sundance::EvaluatableExpr::~EvaluatableExpr | ( | ) | [inline, virtual] |
virtual dtor
Definition at line 92 of file SundanceEvaluatableExpr.hpp.
const Set< MultiIndex > & EvaluatableExpr::activeSpatialDerivs | ( | const EvalContext & | context | ) | const [protected] |
Definition at line 96 of file SundanceEvaluatableExpr.cpp.
Referenced by Sundance::DiscreteFuncElement::internalFindV(), and Sundance::DiscreteFuncElement::internalFindW().
Array< Set< MultipleDeriv > > EvaluatableExpr::computeInputR | ( | const EvalContext & | context, | |
const Array< Set< MultiSet< int > > > & | funcIDCombinations, | |||
const Array< Set< MultiIndex > > & | spatialDerivs | |||
) | const |
Definition at line 419 of file SundanceEvaluatableExpr.cpp.
References Sundance::Set< Key, Compare >::begin(), Sundance::Set< Key, Compare >::end(), Sundance::MultipleDeriv::isInRequiredSet(), Sundance::EvalContext::setupVerbosity(), and SUNDANCE_MSG2.
Referenced by Sundance::SymbPreprocessor::setupVariations().
int EvaluatableExpr::countNodes | ( | ) | const [virtual] |
Reimplemented in Sundance::ExprWithChildren.
Definition at line 232 of file SundanceEvaluatableExpr.cpp.
References nodesHaveBeenCounted_.
Referenced by Sundance::ExprWithChildren::countNodes().
string EvaluatableExpr::derivType | ( | const DerivSubsetSpecifier & | dss | ) | const [protected] |
Definition at line 64 of file SundanceEvaluatableExpr.cpp.
References Sundance::ConstantNonzeros, Sundance::RequiredNonzeros, and Sundance::VariableNonzeros.
Referenced by findDerivSubset().
void EvaluatableExpr::determineR | ( | const EvalContext & | context, | |
const Array< Set< MultipleDeriv > > & | RInput | |||
) | const |
Definition at line 369 of file SundanceEvaluatableExpr.cpp.
References contextToDSSMap_, internalDetermineR(), Sundance::RequiredNonzeros, and rIsReady_.
Referenced by Sundance::DiffOp::internalDetermineR(), and Sundance::SymbPreprocessor::setupVariations().
void EvaluatableExpr::displayNonzeros | ( | std::ostream & | os, | |
const EvalContext & | context | |||
) | const [virtual] |
Reimplemented in Sundance::ExprWithChildren.
Definition at line 495 of file SundanceEvaluatableExpr.cpp.
References Sundance::Set< Key, Compare >::begin(), Sundance::Set< Key, Compare >::contains(), Sundance::Set< Key, Compare >::end(), findC(), findR(), findV(), findW(), Sundance::Set< Key, Compare >::intersection(), and Sundance::ExprBase::toString().
Referenced by Sundance::ExprWithChildren::displayNonzeros(), and Sundance::SymbPreprocessor::setupVariations().
void EvaluatableExpr::evaluate | ( | const EvalManager & | mgr, | |
Array< double > & | constantResults, | |||
Array< RCP< EvalVector > > & | vectorResults | |||
) | const |
Evaluate this expression in the given region, putting the results of the evaluation in the results argument.
Definition at line 151 of file SundanceEvaluatableExpr.cpp.
References evaluator(), and Sundance::EvalManager::getRegion().
Time & EvaluatableExpr::evaluationTimer | ( | ) | [static] |
Definition at line 59 of file SundanceEvaluatableExpr.cpp.
const RCP< Evaluator > & EvaluatableExpr::evaluator | ( | const EvalContext & | context | ) | const |
Return the evaluator to be used for the given context
Definition at line 144 of file SundanceEvaluatableExpr.cpp.
References Sundance::Map< Key, Value, Compare >::containsKey(), evaluators_, and Sundance::Map< Key, Value, Compare >::get().
Referenced by Sundance::ChainRuleEvaluator::ChainRuleEvaluator(), Sundance::DerivOfSymbFuncEvaluator::DerivOfSymbFuncEvaluator(), Sundance::DiffOpEvaluator::DiffOpEvaluator(), and evaluate().
Map<EvalContext, RCP<Evaluator> >& Sundance::EvaluatableExpr::evaluators | ( | ) | const [inline, protected] |
Definition at line 268 of file SundanceEvaluatableExpr.hpp.
References evaluators_.
Referenced by Sundance::ExprWithChildren::setupEval().
const Set< MultipleDeriv > & EvaluatableExpr::findC | ( | const EvalContext & | context | ) | const |
Definition at line 468 of file SundanceEvaluatableExpr.cpp.
References Sundance::ConstantNonzeros, and findDerivSubset().
const Set< MultipleDeriv > & EvaluatableExpr::findC | ( | int | order, | |
const EvalContext & | context | |||
) | const |
Definition at line 255 of file SundanceEvaluatableExpr.cpp.
References Sundance::ConstantNonzeros, and findDerivSubset().
Referenced by Sundance::ExprWithChildren::displayNonzeros(), displayNonzeros(), Sundance::ChainRuleEvaluator::init(), Sundance::SymbolicFuncElement::internalFindC(), Sundance::DiffOp::internalFindC(), Sundance::DiffOp::requestMultiIndexAtEvalPoint(), and sparsitySuperset().
const Set< MultipleDeriv > & EvaluatableExpr::findDerivSubset | ( | const DerivSubsetSpecifier & | dss, | |
const EvalContext & | context | |||
) | const |
Definition at line 479 of file SundanceEvaluatableExpr.cpp.
References allOrdersMap_, findDerivSubset(), and Sundance::Set< Key, Compare >::merge().
const Set< MultipleDeriv > & EvaluatableExpr::findDerivSubset | ( | int | order, | |
const DerivSubsetSpecifier & | dss, | |||
const EvalContext & | context | |||
) | const |
Definition at line 273 of file SundanceEvaluatableExpr.cpp.
References Sundance::AllNonzeros, Sundance::ConstantNonzeros, contextToDSSMap_, derivType(), internalFindC(), internalFindV(), internalFindW(), Sundance::RequiredNonzeros, Sundance::EvalContext::setupVerbosity(), SUNDANCE_MSG2, SUNDANCE_MSG3, Sundance::ExprBase::toString(), Sundance::VariableNonzeros, and Playa::ObjectWithVerbosity::verb().
Referenced by findC(), findDerivSubset(), findR(), findV(), findW(), and Sundance::ExprWithChildren::product().
const Set< MultipleDeriv > & EvaluatableExpr::findR | ( | const EvalContext & | context | ) | const |
Definition at line 463 of file SundanceEvaluatableExpr.cpp.
References findDerivSubset(), and Sundance::RequiredNonzeros.
const Set< MultipleDeriv > & EvaluatableExpr::findR | ( | int | order, | |
const EvalContext & | context | |||
) | const |
Definition at line 262 of file SundanceEvaluatableExpr.cpp.
References findDerivSubset(), Sundance::RequiredNonzeros, rIsReady_, and Sundance::ExprBase::toString().
Referenced by Sundance::ExprWithChildren::displayNonzeros(), displayNonzeros(), Sundance::UserDefOpEvaluator::findRequiredOrders(), Sundance::ChainRuleEvaluator::init(), Sundance::DiffOp::internalDetermineR(), Sundance::UnknownParameterElement::internalFindC(), Sundance::SymbolicFuncElement::internalFindC(), Sundance::ExprWithChildren::internalFindC(), Sundance::DiffOp::internalFindC(), Sundance::ConstantExpr::internalFindC(), Sundance::SymbolicFuncElement::internalFindV(), Sundance::ExprWithChildren::internalFindV(), internalFindV(), Sundance::DiscreteFuncElement::internalFindV(), Sundance::DiffOp::internalFindV(), and sparsitySuperset().
const Set< MultipleDeriv > & EvaluatableExpr::findV | ( | const EvalContext & | context | ) | const |
Definition at line 473 of file SundanceEvaluatableExpr.cpp.
References findDerivSubset(), and Sundance::VariableNonzeros.
const Set< MultipleDeriv > & EvaluatableExpr::findV | ( | int | order, | |
const EvalContext & | context | |||
) | const |
Definition at line 248 of file SundanceEvaluatableExpr.cpp.
References findDerivSubset(), and Sundance::VariableNonzeros.
Referenced by displayNonzeros(), Sundance::ChainRuleEvaluator::init(), Sundance::ExprWithChildren::internalFindC(), Sundance::DiffOp::internalFindC(), Sundance::ProductExpr::internalFindQ_V(), Sundance::ExprWithChildren::internalFindQ_V(), Sundance::SymbolicFuncElement::internalFindV(), Sundance::ExprWithChildren::internalFindV(), Sundance::DiffOp::internalFindV(), Sundance::DiffOp::requestMultiIndexAtEvalPoint(), and sparsitySuperset().
const Set< MultipleDeriv > & EvaluatableExpr::findW | ( | const EvalContext & | context | ) | const |
Definition at line 458 of file SundanceEvaluatableExpr.cpp.
References Sundance::AllNonzeros, and findDerivSubset().
const Set< MultipleDeriv > & EvaluatableExpr::findW | ( | int | order, | |
const EvalContext & | context | |||
) | const |
Definition at line 241 of file SundanceEvaluatableExpr.cpp.
References Sundance::AllNonzeros, and findDerivSubset().
Referenced by Sundance::ExprWithChildren::displayNonzeros(), displayNonzeros(), Sundance::DiffOp::internalDetermineR(), Sundance::UnaryMinus::internalFindQ_W(), Sundance::ProductExpr::internalFindQ_W(), Sundance::DiffOp::internalFindV(), Sundance::SymbolicFuncElement::internalFindW(), Sundance::DiffOp::internalFindW(), and Sundance::DiffOp::requestMultiIndexAtEvalPoint().
const EvaluatableExpr * EvaluatableExpr::getEvalExpr | ( | const Expr & | expr | ) | [static] |
Utility to downcast an expression to an evaluatable expr. Throws an exception if the cast fails.
Definition at line 211 of file SundanceEvaluatableExpr.cpp.
References Playa::Handle< PointerType >::ptr(), and Sundance::Expr::size().
const Set<MultipleDeriv>& Sundance::EvaluatableExpr::getR | ( | int | order, | |
const EvalContext & | context | |||
) | const |
virtual bool Sundance::EvaluatableExpr::hasDiscreteFunctions | ( | ) | const [inline, virtual] |
Indicate whether this expression contains discrete functions.
Reimplemented in Sundance::DiscreteFuncElement, and Sundance::ExprWithChildren.
Definition at line 153 of file SundanceEvaluatableExpr.hpp.
Referenced by Sundance::ExprWithChildren::hasDiscreteFunctions().
RCP< Array< Set< MultipleDeriv > > > EvaluatableExpr::internalDetermineR | ( | const EvalContext & | context, | |
const Array< Set< MultipleDeriv > > & | RInput | |||
) | const [virtual] |
Reimplemented in Sundance::DiffOp, Sundance::DiscreteFuncElement, Sundance::ExplicitFunctionalDerivativeElement, Sundance::ExprWithChildren, Sundance::SymbolicFuncElement, and Sundance::Parameter.
Definition at line 393 of file SundanceEvaluatableExpr.cpp.
References Sundance::EvalContext::setupVerbosity(), SUNDANCE_MSG2, SUNDANCE_MSG3, and Sundance::toString().
Referenced by determineR(), and Sundance::SymbolicFuncElement::internalDetermineR().
virtual Set<MultipleDeriv> Sundance::EvaluatableExpr::internalFindC | ( | int | order, | |
const EvalContext & | context | |||
) | const [inline, virtual] |
Find spatially-constant functional derivatives. Default implementation returns the empty set
Reimplemented in Sundance::ConstantExpr, Sundance::DiffOp, Sundance::DiscreteFuncElement, Sundance::ExplicitFunctionalDerivativeElement, Sundance::ExprWithChildren, Sundance::SymbolicFuncElement, Sundance::UnknownParameterElement, Sundance::ZeroExpr, Sundance::CoordExpr, and Sundance::Parameter.
Definition at line 175 of file SundanceEvaluatableExpr.hpp.
Referenced by findDerivSubset().
virtual Set<MultipleDeriv> Sundance::EvaluatableExpr::internalFindV | ( | int | order, | |
const EvalContext & | context | |||
) | const [inline, virtual] |
Find spatially-variable functional derivatives. Default implementation returns R
Reimplemented in Sundance::ConstantExpr, Sundance::DiffOp, Sundance::DiscreteFuncElement, Sundance::ExplicitFunctionalDerivativeElement, Sundance::ExprWithChildren, Sundance::SymbolicFuncElement, Sundance::UnknownParameterElement, Sundance::CoordExpr, and Sundance::Parameter.
Definition at line 169 of file SundanceEvaluatableExpr.hpp.
References findR().
Referenced by findDerivSubset().
virtual Set<MultipleDeriv> Sundance::EvaluatableExpr::internalFindW | ( | int | order, | |
const EvalContext & | context | |||
) | const [pure virtual] |
Implemented in Sundance::ConstantExpr, Sundance::DiffOp, Sundance::DiscreteFuncElement, Sundance::ExplicitFunctionalDerivativeElement, Sundance::ExprWithChildren, Sundance::FunctionalPolynomial, Sundance::SymbolicFuncElement, Sundance::UnknownParameterElement, Sundance::ZeroExpr, Sundance::CellDiameterExpr, Sundance::CellVectorExpr, Sundance::CoordExpr, Sundance::CurveNormExpr, and Sundance::Parameter.
Referenced by findDerivSubset().
bool EvaluatableExpr::isEvaluatable | ( | const ExprBase * | expr | ) | [static, protected] |
Definition at line 226 of file SundanceEvaluatableExpr.cpp.
virtual int Sundance::EvaluatableExpr::maxDiffOrderOnDiscreteFunctions | ( | ) | const [inline, virtual] |
Find the maximum differentiation order acting on discrete functions in this expression. This is needed to identify expressions where cofacet Jacobians are needed to transform discrete function derivatives.
The base class implementation is a no-op.
Reimplemented in Sundance::DiffOp, Sundance::DiscreteFuncElement, and Sundance::ExprWithChildren.
Definition at line 148 of file SundanceEvaluatableExpr.hpp.
Referenced by Sundance::ExprWithChildren::maxDiffOrderOnDiscreteFunctions(), and Sundance::DiffOp::maxDiffOrderOnDiscreteFunctions().
static int Sundance::EvaluatableExpr::maxFuncDiffOrder | ( | ) | [inline, static] |
Definition at line 159 of file SundanceEvaluatableExpr.hpp.
int EvaluatableExpr::maxOrder | ( | const Set< MultiIndex > & | m | ) | const [protected] |
Definition at line 201 of file SundanceEvaluatableExpr.cpp.
References Sundance::Set< Key, Compare >::begin(), Sundance::Set< Key, Compare >::end(), and Playa::max().
Referenced by Sundance::UserDefOpElement::getArgDerivIndices().
virtual bool Sundance::EvaluatableExpr::nodesHaveBeenCounted | ( | ) | const [inline, virtual] |
Definition at line 156 of file SundanceEvaluatableExpr.hpp.
References nodesHaveBeenCounted_.
Referenced by Sundance::ExprWithChildren::countNodes().
static int Sundance::EvaluatableExpr::numDerivSubsetTypes | ( | ) | [inline, static, private] |
Definition at line 287 of file SundanceEvaluatableExpr.hpp.
void EvaluatableExpr::printR | ( | int | verb, | |
const RCP< Array< Set< MultipleDeriv > > > & | R | |||
) | const [protected] |
Definition at line 518 of file SundanceEvaluatableExpr.cpp.
References SUNDANCE_MSG2.
Referenced by Sundance::DiffOp::internalDetermineR().
void Sundance::EvaluatableExpr::registerEvaluator | ( | const EvalContext & | context, | |
const RCP< Evaluator > & | evaluator | |||
) | const [inline, protected] |
Record the evaluator to be used for the given context
Definition at line 260 of file SundanceEvaluatableExpr.hpp.
References evaluators_, and Sundance::Map< Key, Value, Compare >::put().
void EvaluatableExpr::registerSpatialDerivs | ( | const EvalContext & | context, | |
const Set< MultiIndex > & | miSet | |||
) | const [virtual] |
Reimplemented in Sundance::DiffOp, Sundance::ExprWithChildren, and Sundance::SymbolicFuncElement.
Definition at line 79 of file SundanceEvaluatableExpr.cpp.
References activeSpatialDerivMap_, Sundance::Map< Key, Value, Compare >::containsKey(), Sundance::Set< Key, Compare >::merge(), and Sundance::Map< Key, Value, Compare >::put().
Referenced by Sundance::SymbolicFuncElement::registerSpatialDerivs(), Sundance::ExprWithChildren::registerSpatialDerivs(), Sundance::DiffOp::registerSpatialDerivs(), and Sundance::SymbPreprocessor::setupVariations().
Set< MultiSet< int > > EvaluatableExpr::setDivision | ( | const Set< MultiSet< int > > & | s, | |
int | index | |||
) | const |
Definition at line 334 of file SundanceEvaluatableExpr.cpp.
References Sundance::Set< Key, Compare >::put().
Set< MultipleDeriv > EvaluatableExpr::setDivision | ( | const Set< MultipleDeriv > & | a, | |
const Set< MultipleDeriv > & | b | |||
) | const |
Definition at line 353 of file SundanceEvaluatableExpr.cpp.
References Sundance::Set< Key, Compare >::begin(), Sundance::Set< Key, Compare >::end(), and Sundance::Set< Key, Compare >::put().
Referenced by Sundance::DiffOp::internalFindV(), and Sundance::DiffOp::internalFindW().
Set< MultipleDeriv > EvaluatableExpr::setProduct | ( | const Set< MultipleDeriv > & | a, | |
const Set< MultipleDeriv > & | b | |||
) | const |
Definition at line 320 of file SundanceEvaluatableExpr.cpp.
References Sundance::Set< Key, Compare >::begin(), Sundance::Set< Key, Compare >::end(), and Sundance::Set< Key, Compare >::put().
Referenced by Sundance::DiffOp::internalDetermineR(), and Sundance::ExprWithChildren::product().
void EvaluatableExpr::setupEval | ( | const EvalContext & | context | ) | const [virtual] |
Reimplemented in Sundance::ExprWithChildren.
Definition at line 159 of file SundanceEvaluatableExpr.cpp.
References Sundance::Map< Key, Value, Compare >::containsKey(), Sundance::EvaluatorFactory::createEvaluator(), Sundance::EvalContext::evalSetupVerbosity(), evaluators_, Sundance::Map< Key, Value, Compare >::put(), sparsitySuperset(), SUNDANCE_MSG1, SUNDANCE_MSG2, Sundance::ExprBase::toString(), and Playa::ObjectWithVerbosity::verb().
Referenced by Sundance::DerivOfSymbFuncEvaluator::DerivOfSymbFuncEvaluator(), Sundance::ExprWithChildren::setupEval(), and Sundance::SymbPreprocessor::setupVariations().
void EvaluatableExpr::showSparsity | ( | std::ostream & | os, | |
const EvalContext & | context | |||
) | const [virtual] |
Reimplemented in Sundance::ExprWithChildren.
Definition at line 191 of file SundanceEvaluatableExpr.cpp.
References sparsitySuperset(), and Sundance::ExprBase::toString().
Referenced by Sundance::ExprWithChildren::showSparsity().
RCP< SparsitySuperset > EvaluatableExpr::sparsitySuperset | ( | const EvalContext & | context | ) | const |
Return the set of all nonzero derivatives required in the given context
Definition at line 105 of file SundanceEvaluatableExpr.cpp.
References Sundance::Map< Key, Value, Compare >::containsKey(), findC(), findR(), findV(), Sundance::Map< Key, Value, Compare >::get(), Sundance::Set< Key, Compare >::intersection(), Playa::Out::os(), Sundance::Map< Key, Value, Compare >::put(), Sundance::EvalContext::setupVerbosity(), sparsity_, SUNDANCE_MSG2, and Sundance::ExprBase::toString().
Referenced by Sundance::ChainRuleEvaluator::ChainRuleEvaluator(), Sundance::NonlinearUnaryOpEvaluator::NonlinearUnaryOpEvaluator(), Sundance::ExprWithChildren::setupEval(), setupEval(), Sundance::SymbPreprocessor::setupVariations(), Sundance::ExprWithChildren::showSparsity(), showSparsity(), and Sundance::UserDefOpCommonEvaluator::UserDefOpCommonEvaluator().
Map<EvalContext, Set<MultiIndex> > Sundance::EvaluatableExpr::activeSpatialDerivMap_ [mutable, private] |
Array<Map<EvalContext, Set<MultipleDeriv> > > Sundance::EvaluatableExpr::allOrdersMap_ [mutable, private] |
Array<contextToDSSMap_ele_t> Sundance::EvaluatableExpr::contextToDSSMap_ [mutable, private] |
Definition at line 314 of file SundanceEvaluatableExpr.hpp.
Referenced by determineR(), and findDerivSubset().
Map<EvalContext, RCP<Evaluator> > Sundance::EvaluatableExpr::evaluators_ [mutable, private] |
evaluators, indexed by context
Definition at line 292 of file SundanceEvaluatableExpr.hpp.
Referenced by evaluator(), evaluators(), registerEvaluator(), and setupEval().
Set<int> Sundance::EvaluatableExpr::funcDependencies_ [private] |
Definition at line 307 of file SundanceEvaluatableExpr.hpp.
Set<MultiSet<int> > Sundance::EvaluatableExpr::funcIDSet_ [private] |
Set of function combinations appearing in nonzero mixed partials
Definition at line 304 of file SundanceEvaluatableExpr.hpp.
Set<NonzeroSpecifier> Sundance::EvaluatableExpr::knownNonzeros_ [mutable, private] |
Definition at line 309 of file SundanceEvaluatableExpr.hpp.
bool Sundance::EvaluatableExpr::nodesHaveBeenCounted_ [mutable, private] |
Definition at line 311 of file SundanceEvaluatableExpr.hpp.
Referenced by countNodes(), and nodesHaveBeenCounted().
Array<int> Sundance::EvaluatableExpr::orderOfDependency_ [private] |
Polynomial order of the dependency upon each coordinate direction
Definition at line 301 of file SundanceEvaluatableExpr.hpp.
bool Sundance::EvaluatableExpr::rIsReady_ [mutable, private] |
Definition at line 316 of file SundanceEvaluatableExpr.hpp.
Referenced by determineR(), and findR().
Map<EvalContext, RCP<SparsitySuperset> > Sundance::EvaluatableExpr::sparsity_ [mutable, private] |
supersets of nonzero derivatives to be computed, index by context
Definition at line 298 of file SundanceEvaluatableExpr.hpp.
Referenced by sparsitySuperset().