Public Member Functions | |
FunctionalPolynomial (const RCP< ScalarExpr > &expr) | |
FunctionalPolynomial (const Map< int, RCP< ScalarExpr > > &funcs, const Map< int, Set< MultiIndex > > &funcMultiIndices, const Array< Map< MultipleDeriv, RCP< ScalarExpr > > > &coeffs) | |
virtual | ~FunctionalPolynomial () |
virtual Set< MultipleDeriv > | internalFindW (int order, const EvalContext &context) const |
virtual RCP< ExprBase > | getRcp () |
virtual Evaluator * | createEvaluator (const EvaluatableExpr *expr, const EvalContext &context) const |
RCP< FunctionalPolynomial > | addPoly (const FunctionalPolynomial *other, int sign) const |
RCP< FunctionalPolynomial > | multiplyPoly (const FunctionalPolynomial *other) const |
RCP< FunctionalPolynomial > | multiplyScalar (const RCP< ScalarExpr > &alpha) const |
RCP< FunctionalPolynomial > | addFunction (const RCP< ScalarExpr > &u, int sign) const |
virtual std::ostream & | toText (std::ostream &os, bool paren) const |
virtual XMLObject | toXML () const |
virtual bool | lessThan (const ScalarExpr *other) const |
Static Public Member Functions | |
static bool | isConvertibleToPoly (const ScalarExpr *expr) |
static RCP< FunctionalPolynomial > | toPoly (const RCP< ScalarExpr > &expr) |
Private Member Functions | |
Set< Deriv > | findFuncsForSummation (const Set< MultipleDeriv > &prevSet, const MultipleDeriv &thisSet) const |
MultipleDeriv | successorTerm (const MultipleDeriv &md) const |
void | stepRecurrence (int level, const Map< MultipleDeriv, std::string > &sPrev, Map< MultipleDeriv, std::string > &sCurr) const |
std::string | evalString () const |
Private Attributes | |
Map< int, RCP< ScalarExpr > > | funcs_ |
Map< int, Set< MultiIndex > > | funcMultiIndices_ |
Array< Map< MultipleDeriv, RCP < ScalarExpr > > > | coeffs_ |
Array< Set< MultipleDeriv > > | keys_ |
Definition at line 50 of file SundanceFunctionalPolynomial.hpp.
FunctionalPolynomial::FunctionalPolynomial | ( | const RCP< ScalarExpr > & | expr | ) |
ctor
Definition at line 50 of file SundanceFunctionalPolynomial.cpp.
References coeffs_, Sundance::funcDeriv(), funcMultiIndices_, funcs_, isConvertibleToPoly(), keys_, Playa::Handle< PointerType >::ptr(), Sundance::Set< Key, Compare >::put(), Sundance::Map< Key, Value, Compare >::put(), Sundance::MultiSet< Key >::put(), and Sundance::DerivOfSymbFunc::representMeAsFunctionalDeriv().
Referenced by addFunction(), addPoly(), multiplyPoly(), multiplyScalar(), and toPoly().
FunctionalPolynomial::FunctionalPolynomial | ( | const Map< int, RCP< ScalarExpr > > & | funcs, | |
const Map< int, Set< MultiIndex > > & | funcMultiIndices, | |||
const Array< Map< MultipleDeriv, RCP< ScalarExpr > > > & | coeffs | |||
) |
ctor
Definition at line 105 of file SundanceFunctionalPolynomial.cpp.
virtual Sundance::FunctionalPolynomial::~FunctionalPolynomial | ( | ) | [inline, virtual] |
virtual destructor
Definition at line 61 of file SundanceFunctionalPolynomial.hpp.
RCP< FunctionalPolynomial > FunctionalPolynomial::addFunction | ( | const RCP< ScalarExpr > & | u, | |
int | sign | |||
) | const |
Definition at line 273 of file SundanceFunctionalPolynomial.cpp.
References addPoly(), and FunctionalPolynomial().
RCP< FunctionalPolynomial > FunctionalPolynomial::addPoly | ( | const FunctionalPolynomial * | other, | |
int | sign | |||
) | const |
Definition at line 137 of file SundanceFunctionalPolynomial.cpp.
References coeffs_, funcMultiIndices_, funcs_, FunctionalPolynomial(), Sundance::Expr::handle(), Playa::Handle< PointerType >::ptr(), and Sundance::Map< Key, Value, Compare >::put().
Referenced by addFunction().
Evaluator * FunctionalPolynomial::createEvaluator | ( | const EvaluatableExpr * | expr, | |
const EvalContext & | context | |||
) | const [virtual] |
Implements Sundance::EvaluatorFactory.
Definition at line 311 of file SundanceFunctionalPolynomial.cpp.
string FunctionalPolynomial::evalString | ( | ) | const [private] |
Definition at line 491 of file SundanceFunctionalPolynomial.cpp.
References coeffs_, Playa::Out::os(), and stepRecurrence().
Referenced by toText().
Set< Deriv > FunctionalPolynomial::findFuncsForSummation | ( | const Set< MultipleDeriv > & | prevSet, | |
const MultipleDeriv & | thisSet | |||
) | const [private] |
Definition at line 382 of file SundanceFunctionalPolynomial.cpp.
References Sundance::Set< Key, Compare >::begin(), Sundance::Set< Key, Compare >::end(), and Sundance::Set< Key, Compare >::put().
virtual RCP<ExprBase> Sundance::FunctionalPolynomial::getRcp | ( | ) | [inline, virtual] |
Implements Playa::Handleable< ExprBase >.
Definition at line 71 of file SundanceFunctionalPolynomial.hpp.
Set< MultipleDeriv > FunctionalPolynomial::internalFindW | ( | int | order, | |
const EvalContext & | context | |||
) | const [virtual] |
Implements Sundance::EvaluatableExpr.
Definition at line 128 of file SundanceFunctionalPolynomial.cpp.
bool FunctionalPolynomial::isConvertibleToPoly | ( | const ScalarExpr * | expr | ) | [static] |
Definition at line 320 of file SundanceFunctionalPolynomial.cpp.
Referenced by Sundance::IdentifyPolynomialSum::doTransform(), and FunctionalPolynomial().
bool FunctionalPolynomial::lessThan | ( | const ScalarExpr * | other | ) | const [virtual] |
Ordering operator for use in transforming exprs to standard form
Implements Sundance::ScalarExpr.
Definition at line 522 of file SundanceFunctionalPolynomial.cpp.
RCP< FunctionalPolynomial > FunctionalPolynomial::multiplyPoly | ( | const FunctionalPolynomial * | other | ) | const |
Definition at line 197 of file SundanceFunctionalPolynomial.cpp.
References coeffs_, Sundance::Map< Key, Value, Compare >::containsKey(), funcMultiIndices_, funcs_, FunctionalPolynomial(), Sundance::Map< Key, Value, Compare >::get(), Sundance::Expr::handle(), Sundance::Set< Key, Compare >::merge(), Sundance::MultipleDeriv::product(), Playa::Handle< PointerType >::ptr(), and Sundance::Map< Key, Value, Compare >::put().
RCP< FunctionalPolynomial > FunctionalPolynomial::multiplyScalar | ( | const RCP< ScalarExpr > & | alpha | ) | const |
Definition at line 280 of file SundanceFunctionalPolynomial.cpp.
References coeffs_, funcMultiIndices_, funcs_, FunctionalPolynomial(), Sundance::Expr::handle(), and Playa::Handle< PointerType >::ptr().
void FunctionalPolynomial::stepRecurrence | ( | int | level, | |
const Map< MultipleDeriv, std::string > & | sPrev, | |||
Map< MultipleDeriv, std::string > & | sCurr | |||
) | const [private] |
Definition at line 429 of file SundanceFunctionalPolynomial.cpp.
References Sundance::Set< Key, Compare >::begin(), Sundance::Map< Key, Value, Compare >::containsKey(), Sundance::Set< Key, Compare >::end(), Sundance::Map< Key, Value, Compare >::get(), Sundance::Set< Key, Compare >::merge(), Playa::Out::os(), Sundance::Map< Key, Value, Compare >::put(), Sundance::MultiSet< Key >::put(), Sundance::Set< Key, Compare >::put(), and Sundance::MultiSet< Key >::toString().
Referenced by evalString().
MultipleDeriv FunctionalPolynomial::successorTerm | ( | const MultipleDeriv & | md | ) | const [private] |
Given a term's key, find the term that will appear as its successor in the evaluation recurrence.
Definition at line 416 of file SundanceFunctionalPolynomial.cpp.
References Sundance::MultiSet< Key >::put().
RCP< FunctionalPolynomial > FunctionalPolynomial::toPoly | ( | const RCP< ScalarExpr > & | expr | ) | [static] |
Definition at line 335 of file SundanceFunctionalPolynomial.cpp.
References FunctionalPolynomial().
Referenced by Sundance::IdentifyPolynomialSum::doTransform().
std::ostream & FunctionalPolynomial::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 347 of file SundanceFunctionalPolynomial.cpp.
References evalString().
XMLObject FunctionalPolynomial::toXML | ( | ) | const [virtual] |
Write in XML
Implements Sundance::ExprBase.
Definition at line 354 of file SundanceFunctionalPolynomial.cpp.
References coeffs_, Sundance::Expr::handle(), and Sundance::Expr::toXML().
Array<Map<MultipleDeriv, RCP<ScalarExpr> > > Sundance::FunctionalPolynomial::coeffs_ [private] |
Definition at line 117 of file SundanceFunctionalPolynomial.hpp.
Referenced by addPoly(), evalString(), FunctionalPolynomial(), multiplyPoly(), multiplyScalar(), and toXML().
Map<int, Set<MultiIndex> > Sundance::FunctionalPolynomial::funcMultiIndices_ [private] |
Definition at line 114 of file SundanceFunctionalPolynomial.hpp.
Referenced by addPoly(), FunctionalPolynomial(), multiplyPoly(), and multiplyScalar().
Map<int, RCP<ScalarExpr> > Sundance::FunctionalPolynomial::funcs_ [private] |
Definition at line 111 of file SundanceFunctionalPolynomial.hpp.
Referenced by addPoly(), FunctionalPolynomial(), multiplyPoly(), and multiplyScalar().
Array<Set<MultipleDeriv> > Sundance::FunctionalPolynomial::keys_ [private] |
Definition at line 120 of file SundanceFunctionalPolynomial.hpp.
Referenced by FunctionalPolynomial().