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 44 of file SundanceChainRuleEvaluator.hpp.


Constructor & Destructor Documentation

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

virtual Sundance::ChainRuleEvaluator::~ChainRuleEvaluator (  )  [inline, virtual]

Definition at line 53 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 124 of file SundanceChainRuleEvaluator.hpp.

References childEvaluators_.

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

Definition at line 127 of file SundanceChainRuleEvaluator.hpp.

References childSparsity_.

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

Returns the binomial coefficient

Definition at line 135 of file SundanceChainRuleEvaluator.cpp.

References fact().

Referenced by stirling2().

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

Definition at line 72 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:
mgr Manager for this evaluation step
constDerivsOfArgs Constant values and functional derivatives of arguments. The outer array index is over arguments. The inner array index is over functional derivatives of that argument.
varDerivsOfArgs Variable values and functional derivatives of arguments. The outer array index is over arguments. The inner array index is over functional derivatives of that argument.
constArgDerivs Constant-valued derivatives of expr wrt arguments.
varArgDerivs Variable-valued derivatives of expr wrt arguments.

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

Referenced by internalEval().

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

Returns the factorial of n

Definition at line 128 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 151 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 117 of file SundanceChainRuleEvaluator.cpp.

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

int Sundance::ChainRuleEvaluator::numChildren (  )  const [inline]

Definition at line 61 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 78 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 140 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 152 of file SundanceChainRuleEvaluator.hpp.

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

Definition at line 154 of file SundanceChainRuleEvaluator.hpp.

Referenced by addConstArgDeriv(), and constArgDerivIndex().

Definition at line 148 of file SundanceChainRuleEvaluator.hpp.

Referenced by init(), and internalEval().

Definition at line 156 of file SundanceChainRuleEvaluator.hpp.

Referenced by addVarArgDeriv(), and varArgDerivIndex().

Definition at line 160 of file SundanceChainRuleEvaluator.hpp.

Referenced by init(), and internalEval().

Definition at line 158 of file SundanceChainRuleEvaluator.hpp.

Referenced by init(), and internalEval().

Site Contact