Public Member Functions | |
DiffOp (const MultiIndex &op, const RCP< ScalarExpr > &arg) | |
virtual | ~DiffOp () |
virtual bool | isLinearInTests () const |
virtual bool | isLinearForm (const Expr &u) const |
virtual bool | isQuadraticForm (const Expr &u) const |
virtual int | maxDiffOrderOnDiscreteFunctions () const |
virtual std::ostream & | toText (std::ostream &os, bool paren) const |
virtual XMLObject | toXML () const |
virtual Set< MultipleDeriv > | internalFindW (int order, const EvalContext &context) const |
virtual Set< MultipleDeriv > | internalFindV (int order, const EvalContext &context) const |
virtual Set< MultipleDeriv > | internalFindC (int order, const EvalContext &context) const |
virtual RCP< Array< Set < MultipleDeriv > > > | internalDetermineR (const EvalContext &context, const Array< Set< MultipleDeriv > > &RInput) const |
void | requestMultiIndexAtEvalPoint (const MultiIndex &mi, const MultipleDeriv &u, const EvalContext &context) const |
const Deriv & | myCoordDeriv () const |
const MultiIndex & | mi () const |
const Sundance::Set< Deriv > & | requiredFunctions (const MultipleDeriv &d) const |
bool | requiresFunctionsToEval (const MultipleDeriv &d) const |
virtual RCP< ExprBase > | getRcp () |
virtual Evaluator * | createEvaluator (const EvaluatableExpr *expr, const EvalContext &context) const |
virtual void | registerSpatialDerivs (const EvalContext &context, const Set< MultiIndex > &miSet) const |
virtual bool | lessThan (const ScalarExpr *other) const |
Private Attributes | |
MultiIndex | mi_ |
Deriv | myCoordDeriv_ |
Map< MultipleDeriv, Sundance::Set< Deriv > , increasingOrder < MultipleDeriv > > | requiredFunctions_ |
bool | ignoreFuncTerms_ |
Definition at line 57 of file SundanceDiffOp.hpp.
DiffOp::DiffOp | ( | const MultiIndex & | op, | |
const RCP< ScalarExpr > & | arg | |||
) |
ctor
Definition at line 48 of file SundanceDiffOp.cpp.
virtual Sundance::DiffOp::~DiffOp | ( | ) | [inline, virtual] |
virtual destructor
Definition at line 64 of file SundanceDiffOp.hpp.
Evaluator * DiffOp::createEvaluator | ( | const EvaluatableExpr * | expr, | |
const EvalContext & | context | |||
) | const [virtual] |
Implements Sundance::EvaluatorFactory.
Reimplemented in Sundance::DerivOfSymbFunc.
Definition at line 85 of file SundanceDiffOp.cpp.
virtual RCP<ExprBase> Sundance::DiffOp::getRcp | ( | ) | [inline, virtual] |
Implements Playa::Handleable< ExprBase >.
Reimplemented in Sundance::DerivOfSymbFunc.
Definition at line 159 of file SundanceDiffOp.hpp.
RCP< Array< Set< MultipleDeriv > > > DiffOp::internalDetermineR | ( | const EvalContext & | context, | |
const Array< Set< MultipleDeriv > > & | RInput | |||
) | const [virtual] |
Reimplemented from Sundance::ExprWithChildren.
Definition at line 130 of file SundanceDiffOp.cpp.
References Sundance::applyTx(), Sundance::applyZx(), Sundance::Set< Key, Compare >::begin(), Sundance::coordDeriv(), Sundance::EvaluatableExpr::determineR(), Sundance::Set< Key, Compare >::end(), Sundance::UnaryExpr::evaluatableArg(), Sundance::EvaluatableExpr::findR(), Sundance::EvaluatableExpr::findW(), Sundance::MultiIndex::firstOrderDirection(), mi(), mi_, Sundance::EvaluatableExpr::printR(), requestMultiIndexAtEvalPoint(), Sundance::EvaluatableExpr::setProduct(), Sundance::EvalContext::setupVerbosity(), SUNDANCE_MSG2, SUNDANCE_MSG3, SUNDANCE_MSG5, Sundance::ExprBase::toString(), Playa::ObjectWithVerbosity::verb(), and Sundance::Xx().
Set< MultipleDeriv > DiffOp::internalFindC | ( | int | order, | |
const EvalContext & | context | |||
) | const [virtual] |
Call findC() to ensure that the argument has C tabulated
Reimplemented from Sundance::ExprWithChildren.
Definition at line 289 of file SundanceDiffOp.cpp.
References Sundance::UnaryExpr::evaluatableArg(), Sundance::EvaluatableExpr::findC(), Sundance::EvaluatableExpr::findR(), Sundance::EvaluatableExpr::findV(), Sundance::Set< Key, Compare >::setDifference(), Sundance::EvalContext::setupVerbosity(), SUNDANCE_MSG2, SUNDANCE_MSG3, SUNDANCE_MSG5, Sundance::ExprBase::toString(), and Playa::ObjectWithVerbosity::verb().
Set< MultipleDeriv > DiffOp::internalFindV | ( | int | order, | |
const EvalContext & | context | |||
) | const [virtual] |
Reimplemented from Sundance::ExprWithChildren.
Definition at line 239 of file SundanceDiffOp.cpp.
References Sundance::applyTx(), Sundance::applyZx(), Sundance::UnaryExpr::evaluatableArg(), Sundance::EvaluatableExpr::findR(), Sundance::EvaluatableExpr::findV(), Sundance::EvaluatableExpr::findW(), Sundance::Set< Key, Compare >::intersection(), mi_, Sundance::EvaluatableExpr::setDivision(), Sundance::Set< Key, Compare >::setUnion(), Sundance::EvalContext::setupVerbosity(), SUNDANCE_MSG2, SUNDANCE_MSG5, Sundance::ExprBase::toString(), Playa::ObjectWithVerbosity::verb(), and Sundance::Xx().
Set< MultipleDeriv > DiffOp::internalFindW | ( | int | order, | |
const EvalContext & | context | |||
) | const [virtual] |
Reimplemented from Sundance::ExprWithChildren.
Definition at line 203 of file SundanceDiffOp.cpp.
References Sundance::applyTx(), Sundance::applyZx(), Sundance::UnaryExpr::evaluatableArg(), Sundance::EvaluatableExpr::findW(), mi_, Sundance::EvaluatableExpr::setDivision(), Sundance::Set< Key, Compare >::setUnion(), Sundance::EvalContext::setupVerbosity(), SUNDANCE_MSG2, SUNDANCE_MSG3, SUNDANCE_MSG5, Sundance::ExprBase::toString(), Playa::ObjectWithVerbosity::verb(), and Sundance::Xx().
virtual bool Sundance::DiffOp::isLinearForm | ( | const Expr & | u | ) | const [inline, virtual] |
Indicate whether the expression is linear in the given functions
Reimplemented from Sundance::ScalarExpr.
Definition at line 77 of file SundanceDiffOp.hpp.
References Sundance::UnaryExpr::evaluatableArg(), and Sundance::ScalarExpr::isLinearForm().
virtual bool Sundance::DiffOp::isLinearInTests | ( | ) | const [inline, virtual] |
Indicate whether the expression is linear with respect to test functions
Reimplemented from Sundance::ScalarExpr.
Definition at line 71 of file SundanceDiffOp.hpp.
References Sundance::UnaryExpr::evaluatableArg(), and Sundance::ScalarExpr::isLinearInTests().
virtual bool Sundance::DiffOp::isQuadraticForm | ( | const Expr & | u | ) | const [inline, virtual] |
Indicate whether the expression is at most quadratic in the given functions
Reimplemented from Sundance::ScalarExpr.
Definition at line 84 of file SundanceDiffOp.hpp.
References Sundance::UnaryExpr::evaluatableArg(), and Sundance::ScalarExpr::isQuadraticForm().
bool DiffOp::lessThan | ( | const ScalarExpr * | other | ) | const [virtual] |
Ordering operator for use in transforming exprs to standard form
Reimplemented from Sundance::ExprWithChildren.
Reimplemented in Sundance::DerivOfSymbFunc.
Definition at line 321 of file SundanceDiffOp.cpp.
References myCoordDeriv_.
virtual int Sundance::DiffOp::maxDiffOrderOnDiscreteFunctions | ( | ) | const [inline, virtual] |
Find the maximum differentiation order acting on discrete functions in this expression.
Reimplemented from Sundance::ExprWithChildren.
Definition at line 93 of file SundanceDiffOp.hpp.
References Sundance::UnaryExpr::evaluatableArg(), Sundance::ExprWithChildren::hasDiscreteFunctions(), Sundance::EvaluatableExpr::maxDiffOrderOnDiscreteFunctions(), mi_, and Sundance::MultiIndex::order().
const MultiIndex& Sundance::DiffOp::mi | ( | ) | const [inline] |
Definition at line 143 of file SundanceDiffOp.hpp.
References mi_.
Referenced by Sundance::DerivOfSymbFuncEvaluator::DerivOfSymbFuncEvaluator(), Sundance::DiffOpEvaluator::DiffOpEvaluator(), internalDetermineR(), and Sundance::DerivOfSymbFunc::representMeAsFunctionalDeriv().
const Deriv& Sundance::DiffOp::myCoordDeriv | ( | ) | const [inline] |
void DiffOp::registerSpatialDerivs | ( | const EvalContext & | context, | |
const Set< MultiIndex > & | miSet | |||
) | const [virtual] |
Reimplemented from Sundance::ExprWithChildren.
Definition at line 54 of file SundanceDiffOp.cpp.
References Sundance::Set< Key, Compare >::begin(), Sundance::Set< Key, Compare >::end(), Sundance::UnaryExpr::evaluatableArg(), mi_, Sundance::Set< Key, Compare >::put(), and Sundance::EvaluatableExpr::registerSpatialDerivs().
void DiffOp::requestMultiIndexAtEvalPoint | ( | const MultiIndex & | mi, | |
const MultipleDeriv & | u, | |||
const EvalContext & | context | |||
) | const |
Definition at line 93 of file SundanceDiffOp.cpp.
References Sundance::DiscreteFuncElement::addMultiIndex(), Sundance::SymbolicFuncElement::evalPt(), Sundance::EvaluatableExpr::findC(), Sundance::EvaluatableExpr::findV(), Sundance::EvaluatableExpr::findW(), Sundance::SpatialDerivSpecifier::isDivergence(), Sundance::SpatialDerivSpecifier::isNormal(), Sundance::SpatialDerivSpecifier::mi(), Sundance::EvalContext::setupVerbosity(), SUNDANCE_MSG3, Sundance::ExprBase::toString(), and Playa::ObjectWithVerbosity::verb().
Referenced by internalDetermineR().
const Sundance::Set<Deriv>& Sundance::DiffOp::requiredFunctions | ( | const MultipleDeriv & | d | ) | const [inline] |
Get the functions that are required in the evaluation of the multiple deriv d
Definition at line 147 of file SundanceDiffOp.hpp.
References requiredFunctions_.
bool Sundance::DiffOp::requiresFunctionsToEval | ( | const MultipleDeriv & | d | ) | const [inline] |
Definition at line 151 of file SundanceDiffOp.hpp.
References Sundance::Map< Key, Value, Compare >::containsKey(), and requiredFunctions_.
std::ostream & DiffOp::toText | ( | std::ostream & | os, | |
bool | paren | |||
) | const [virtual] |
Write a simple text description suitable for output to a terminal
Implements Sundance::ExprBase.
Definition at line 68 of file SundanceDiffOp.cpp.
References Sundance::UnaryExpr::arg(), Sundance::CoordExpr::coordName(), Sundance::MultiIndex::firstOrderDirection(), mi_, and Sundance::Expr::toString().
XMLObject DiffOp::toXML | ( | ) | const [virtual] |
Write in XML
Implements Sundance::ExprBase.
Definition at line 75 of file SundanceDiffOp.cpp.
References Sundance::UnaryExpr::arg(), mi_, and Sundance::MultiIndex::toString().
bool Sundance::DiffOp::ignoreFuncTerms_ [mutable, private] |
Definition at line 188 of file SundanceDiffOp.hpp.
MultiIndex Sundance::DiffOp::mi_ [private] |
Definition at line 180 of file SundanceDiffOp.hpp.
Referenced by internalDetermineR(), internalFindV(), internalFindW(), maxDiffOrderOnDiscreteFunctions(), mi(), registerSpatialDerivs(), toText(), and toXML().
Deriv Sundance::DiffOp::myCoordDeriv_ [private] |
Map<MultipleDeriv, Sundance::Set<Deriv>, increasingOrder<MultipleDeriv> > Sundance::DiffOp::requiredFunctions_ [mutable, private] |
Definition at line 186 of file SundanceDiffOp.hpp.
Referenced by requiredFunctions(), and requiresFunctionsToEval().