Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Static Private Member Functions | Private Attributes
Sundance::ChainRuleEvaluator Class Reference
Inheritance diagram for Sundance::ChainRuleEvaluator:
Sundance::SubtypeEvaluator< ExprWithChildren > Sundance::Evaluator Sundance::ObjectWithClassVerbosity< Evaluator > Playa::ObjectWithVerbosity Sundance::NonlinearUnaryOpEvaluator Sundance::UserDefOpEvaluator

List of all members.

Public Member Functions

 ChainRuleEvaluator (const ExprWithChildren *expr, const EvalContext &context)
virtual ~ChainRuleEvaluator ()
virtual void internalEval (const EvalManager &mgr, Array< double > &constantResults, Array< RCP< EvalVector > > &vectorResults) const
int numChildren () const
int constArgDerivIndex (const MultiSet< int > &df) const
int varArgDerivIndex (const MultiSet< int > &df) const
 TEUCHOS_TIMER (chainRuleEvalTimer,"chain rule evaluation")
const Array< Array< int > > & nComps (int N, int n) const
void resetNumCalls () const
virtual void evalArgDerivs (const EvalManager &mgr, const Array< RCP< Array< double > > > &constDerivsOfArgs, const Array< RCP< Array< RCP< EvalVector > > > > &varDerivOfArgs, Array< double > &constArgDerivs, Array< RCP< EvalVector > > &varArgDerivs) const =0

Static Public Member Functions

static Set< MultiSet
< MultipleDeriv > > 
chainRuleBins (const MultipleDeriv &d, const MultiSet< int > &q)

Protected Member Functions

void init (const ExprWithChildren *expr, const EvalContext &context)
void addConstArgDeriv (const MultiSet< int > &df, int index)
void addVarArgDeriv (const MultiSet< int > &df, int index)
const EvaluatorchildEvaluator (int i) const
const SparsitySupersetchildSparsity (int i) const
double choose (int N, int n) const
double fact (int n) const
double stirling2 (int n, int k) const
int derivComboMultiplicity (const MultiSet< MultipleDeriv > &b) const

Static Protected Member Functions

static MultipleDeriv makeMD (const Array< Deriv > &d)

Static Private Member Functions

static Map< OrderedPair< int,
int >, Array< Array< int > > > & 
compMap ()

Private Attributes

Array< RCP< ChainRuleSum > > expansions_
Array< RCP< Evaluator > > childEvaluators_
Array< RCP< SparsitySuperset > > childSparsity_
Map< MultiSet< int >, int > constArgDerivMap_
Map< MultiSet< int >, int > varArgDerivMap_
int zerothDerivResultIndex_
bool zerothDerivIsConstant_

Detailed Description

Definition at line 55 of file SundanceChainRuleEvaluator.hpp.


Constructor & Destructor Documentation

ChainRuleEvaluator::ChainRuleEvaluator ( const ExprWithChildren expr,
const EvalContext context 
)

Definition at line 64 of file SundanceChainRuleEvaluator.hpp.


Member Function Documentation

void ChainRuleEvaluator::addConstArgDeriv ( const MultiSet< int > &  df,
int  index 
) [protected]
void ChainRuleEvaluator::addVarArgDeriv ( const MultiSet< int > &  df,
int  index 
) [protected]
Set< MultiSet< MultipleDeriv > > ChainRuleEvaluator::chainRuleBins ( const MultipleDeriv d,
const MultiSet< int > &  q 
) [static]
const Evaluator* Sundance::ChainRuleEvaluator::childEvaluator ( int  i) const [inline, protected]

Definition at line 135 of file SundanceChainRuleEvaluator.hpp.

References childEvaluators_.

const SparsitySuperset* Sundance::ChainRuleEvaluator::childSparsity ( int  i) const [inline, protected]

Definition at line 138 of file SundanceChainRuleEvaluator.hpp.

References childSparsity_.

double ChainRuleEvaluator::choose ( int  N,
int  n 
) const [protected]

Returns the binomial coefficient

Definition at line 146 of file SundanceChainRuleEvaluator.cpp.

References fact().

Referenced by stirling2().

Sundance::Map< OrderedPair< int, int >, Array< Array< int > > > & ChainRuleEvaluator::compMap ( ) [static, private]

Definition at line 83 of file SundanceChainRuleEvaluator.cpp.

Referenced by nComps().

int ChainRuleEvaluator::constArgDerivIndex ( const MultiSet< int > &  df) const
int ChainRuleEvaluator::derivComboMultiplicity ( const MultiSet< MultipleDeriv > &  b) const [protected]
virtual void Sundance::ChainRuleEvaluator::evalArgDerivs ( const EvalManager mgr,
const Array< RCP< Array< double > > > &  constDerivsOfArgs,
const Array< RCP< Array< RCP< EvalVector > > > > &  varDerivOfArgs,
Array< double > &  constArgDerivs,
Array< RCP< EvalVector > > &  varArgDerivs 
) const [pure virtual]

Evaluate the derivatives of the expression with respect to the arguments.

Parameters:
mgrManager for this evaluation step
constDerivsOfArgsConstant values and functional derivatives of arguments. The outer array index is over arguments. The inner array index is over functional derivatives of that argument.
varDerivsOfArgsVariable values and functional derivatives of arguments. The outer array index is over arguments. The inner array index is over functional derivatives of that argument.
constArgDerivsConstant-valued derivatives of expr wrt arguments.
varArgDerivsVariable-valued derivatives of expr wrt arguments.

Implemented in Sundance::UserDefOpEvaluator, and Sundance::NonlinearUnaryOpEvaluator.

Referenced by internalEval().

double ChainRuleEvaluator::fact ( int  n) const [protected]

Returns the factorial of n

Definition at line 139 of file SundanceChainRuleEvaluator.cpp.

Referenced by choose().

void ChainRuleEvaluator::init ( const ExprWithChildren expr,
const EvalContext context 
) [protected]
void ChainRuleEvaluator::internalEval ( const EvalManager mgr,
Array< double > &  constantResults,
Array< RCP< EvalVector > > &  vectorResults 
) const [virtual]
MultipleDeriv ChainRuleEvaluator::makeMD ( const Array< Deriv > &  d) [static, protected]

Definition at line 162 of file SundanceChainRuleEvaluator.cpp.

References Sundance::MultiSet< Key >::put().

Referenced by chainRuleBins().

const Array< Array< int > > & ChainRuleEvaluator::nComps ( int  N,
int  n 
) const

Definition at line 128 of file SundanceChainRuleEvaluator.cpp.

References compMap(), and Sundance::compositions().

Definition at line 72 of file SundanceChainRuleEvaluator.hpp.

References childEvaluators_.

Referenced by ChainRuleEvaluator(), init(), internalEval(), and resetNumCalls().

void ChainRuleEvaluator::resetNumCalls ( ) const [virtual]

Reimplemented from Sundance::Evaluator.

Reimplemented in Sundance::UserDefOpEvaluator.

Definition at line 89 of file SundanceChainRuleEvaluator.cpp.

References childEvaluators_, and numChildren().

double ChainRuleEvaluator::stirling2 ( int  n,
int  k 
) const [protected]

Returns the stirling number of the second kind

Definition at line 151 of file SundanceChainRuleEvaluator.cpp.

References choose().

Sundance::ChainRuleEvaluator::TEUCHOS_TIMER ( chainRuleEvalTimer  ,
"chain rule evaluation"   
)
int ChainRuleEvaluator::varArgDerivIndex ( const MultiSet< int > &  df) const

Member Data Documentation

Definition at line 163 of file SundanceChainRuleEvaluator.hpp.

Referenced by ChainRuleEvaluator(), childSparsity(), and init().

Definition at line 165 of file SundanceChainRuleEvaluator.hpp.

Referenced by addConstArgDeriv(), and constArgDerivIndex().

Definition at line 159 of file SundanceChainRuleEvaluator.hpp.

Referenced by init(), and internalEval().

Definition at line 167 of file SundanceChainRuleEvaluator.hpp.

Referenced by addVarArgDeriv(), and varArgDerivIndex().

Definition at line 171 of file SundanceChainRuleEvaluator.hpp.

Referenced by init(), and internalEval().

Definition at line 169 of file SundanceChainRuleEvaluator.hpp.

Referenced by init(), and internalEval().

Site Contact