|
CppADCodeGen 2.4.3
A C++ Algorithmic Differentiation Package with Source Code Generation
|
#include <evaluator_adcg.hpp>


Public Types | |
| using | ScalarOut = CG<BaseOut> |
| using | ActiveOut = CppAD::AD<ScalarOut> |
| using | Super = EvaluatorAD<ScalarIn, ScalarOut, Evaluator<ScalarIn, CG<BaseOut>, CppAD::AD<CG<BaseOut> > > > |
| using | Base |
| using | NodeIn |
| using | ArgIn |
Public Member Functions | |
| Evaluator (CodeHandler< ScalarIn > &handler) | |
| void | setPrintFor (bool printFor) |
| bool | isPrintFor () const |
| void | setPrintForPos (const ActiveOut &pos) |
| const ActiveOut & | getPrintForPos () const |
| void | setCopyAdCgName (bool adcgName) |
| bool | isCopyAdCgName () const |
| Evaluator (CodeHandler< ScalarIn > &handler) | |
| bool | isUnderEvaluation () |
| std::vector< CppAD::AD< CG< BaseOut > > > | evaluate (ArrayView< const CppAD::AD< CG< BaseOut > > > indepNew, ArrayView< const CG< ScalarIn > > depOld) |
| void | evaluate (ArrayView< const CppAD::AD< CG< BaseOut > > > indepNew, ArrayView< CppAD::AD< CG< BaseOut > > > depNew, ArrayView< const CG< ScalarIn > > depOld) |
| void | evaluate (const CppAD::AD< CG< BaseOut > > *indepNew, size_t indepSize, CppAD::AD< CG< BaseOut > > *depNew, const CG< ScalarIn > *depOld, size_t depSize) |
| void | setPrintOutPrintOperations (bool print) |
| bool | isPrintOutPrintOperations () const |
| virtual bool | addAtomicFunction (size_t id, atomic_base< CG< BaseOut > > &atomic) |
| virtual void | addAtomicFunctions (const std::map< size_t, atomic_base< CG< BaseOut > > * > &atomics) |
| size_t | getNumberOfEvaluatedAtomics () const |
Protected Types | |
| using | SourceCodePath |
Protected Member Functions | |
| void | processActiveOut (const OperationNode< ScalarIn > &node, ActiveOut &a) |
| CppAD::AD< CG< BaseOut > > | evalOperation (OperationNode< ScalarIn > &node) |
| CppAD::AD< CG< BaseOut > > | evalAssign (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalAbs (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalAcos (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalAdd (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalAlias (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalArrayElement (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalAsin (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalAtan (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalCompareLt (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalCompareLe (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalCompareEq (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalCompareGe (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalCompareGt (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalCompareNe (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalCosh (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalCos (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalDiv (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalExp (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalIndependent (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalLog (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalMul (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalPow (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalPrint (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalSign (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalSinh (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalSin (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalSqrt (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalSub (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalTanh (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalTan (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalMinus (const NodeIn &node) |
| CppAD::AD< CG< BaseOut > > | evalUnsupportedOperation (const NodeIn &node) |
| void | evalAtomicOperation (const NodeIn &node) |
| void | processActiveOut (const NodeIn &node, CppAD::AD< CG< BaseOut > > &a) |
| CppAD::AD< CG< BaseOut > > | evalArg (const std::vector< Argument< ScalarIn > > &args, size_t pos) |
| CppAD::AD< CG< BaseOut > > | evalArg (const Argument< ScalarIn > &arg, size_t pos) |
| void | prepareNewEvaluation () |
| void | clear () |
| void | analyzeOutIndeps (const CppAD::AD< CG< BaseOut > > *indep, size_t n) |
| CppAD::AD< CG< BaseOut > > | evalCG (const CG< ScalarIn > &dep) |
| const CppAD::AD< CG< BaseOut > > & | evalOperations (OperationNode< ScalarIn > &node) |
| CppAD::AD< CG< BaseOut > > * | saveEvaluation (const OperationNode< ScalarIn > &node, CppAD::AD< CG< BaseOut > > &&result) |
| std::vector< CppAD::AD< CG< BaseOut > > > & | evalArrayCreationOperation (const OperationNode< ScalarIn > &node) |
| std::vector< CppAD::AD< CG< BaseOut > > > & | evalSparseArrayCreationOperation (const OperationNode< ScalarIn > &node) |
| void | evalAtomicOperation (NodeIn &node) |
Protected Attributes | |
| bool | printFor_ |
| ActiveOut | printForPos_ |
| bool | adcgName_ |
| std::set< NodeIn * > | evalsAtomic_ |
| std::map< size_t, CppAD::atomic_base< ScalarOut > * > | atomicFunctions_ |
| CodeHandler< ScalarIn > & | handler_ |
| const CppAD::AD< CG< BaseOut > > * | indep_ |
| CodeHandlerVector< ScalarIn, std::unique_ptr< CppAD::AD< CG< BaseOut > > > > | evals_ |
| std::map< size_t, std::vector< CppAD::AD< CG< BaseOut > > > * > | evalsArrays_ |
| std::map< size_t, std::vector< CppAD::AD< CG< BaseOut > > > * > | evalsSparseArrays_ |
| bool | underEval_ |
| size_t | depth_ |
| SourceCodePath | path_ |
| bool | printOutPriOperations_ |
Specialization of class Evaluator for an output active type of AD<CG<Base>>
Definition at line 25 of file evaluator_adcg.hpp.
| using CppAD::cg::Evaluator< ScalarIn, CG< BaseOut >, CppAD::AD< CG< BaseOut > > >::ActiveOut = CppAD::AD<ScalarOut> |
Definition at line 33 of file evaluator_adcg.hpp.
| using CppAD::cg::EvaluatorOperations< ScalarIn, CG< BaseOut >, CppAD::AD< CG< BaseOut > >, FinalEvaluatorType >::ArgIn |
Definition at line 354 of file evaluator.hpp.
| using CppAD::cg::Evaluator< ScalarIn, CG< BaseOut >, CppAD::AD< CG< BaseOut > > >::Base |
Definition at line 696 of file evaluator.hpp.
| using CppAD::cg::EvaluatorOperations< ScalarIn, CG< BaseOut >, CppAD::AD< CG< BaseOut > >, FinalEvaluatorType >::NodeIn |
Definition at line 353 of file evaluator.hpp.
| using CppAD::cg::Evaluator< ScalarIn, CG< BaseOut >, CppAD::AD< CG< BaseOut > > >::ScalarOut = CG<BaseOut> |
Definition at line 32 of file evaluator_adcg.hpp.
|
protected |
Definition at line 48 of file evaluator.hpp.
| using CppAD::cg::Evaluator< ScalarIn, CG< BaseOut >, CppAD::AD< CG< BaseOut > > >::Super = EvaluatorAD<ScalarIn, ScalarOut, Evaluator<ScalarIn, CG<BaseOut>, CppAD::AD<CG<BaseOut> > > > |
Definition at line 34 of file evaluator_adcg.hpp.
|
inline |
Definition at line 58 of file evaluator_adcg.hpp.
|
inlinevirtual |
Definition at line 65 of file evaluator_adcg.hpp.
|
inline |
Definition at line 699 of file evaluator.hpp.
|
inlinevirtualinherited |
Provides an atomic function.
| id | The atomic function ID |
| atomic | The atomic function |
Definition at line 83 of file evaluator_ad.hpp.
|
inlinevirtualinherited |
Definition at line 89 of file evaluator_ad.hpp.
|
inlineprotected |
Definition at line 211 of file evaluator.hpp.
|
inlineprotected |
clean-up
Definition at line 197 of file evaluator.hpp.
|
inlineprotected |
Definition at line 487 of file evaluator.hpp.
|
inlineprotected |
Definition at line 493 of file evaluator.hpp.
|
inlineprotected |
Definition at line 499 of file evaluator.hpp.
|
inlineprotected |
Definition at line 505 of file evaluator.hpp.
|
inlineprotected |
Definition at line 364 of file evaluator.hpp.
|
inlineprotected |
Definition at line 364 of file evaluator.hpp.
|
inlineprotected |
Definition at line 281 of file evaluator.hpp.
|
inlineprotected |
Definition at line 511 of file evaluator.hpp.
|
inlineprotected |
Definition at line 527 of file evaluator.hpp.
|
inlineprotected |
Definition at line 481 of file evaluator.hpp.
|
inlineprotected |
Definition at line 533 of file evaluator.hpp.
|
inlineprotected |
Definition at line 680 of file evaluator.hpp.
|
inlineprotectedinherited |
| CGException | on an internal evaluation error |
Definition at line 131 of file evaluator_ad.hpp.
|
inlineprotected |
Definition at line 216 of file evaluator.hpp.
|
inlineprotected |
Definition at line 551 of file evaluator.hpp.
|
inlineprotected |
Definition at line 557 of file evaluator.hpp.
|
inlineprotected |
Definition at line 563 of file evaluator.hpp.
|
inlineprotected |
Definition at line 545 of file evaluator.hpp.
|
inlineprotected |
Definition at line 539 of file evaluator.hpp.
|
inlineprotected |
Definition at line 569 of file evaluator.hpp.
|
inlineprotected |
Definition at line 581 of file evaluator.hpp.
|
inlineprotected |
Definition at line 575 of file evaluator.hpp.
|
inlineprotected |
Definition at line 587 of file evaluator.hpp.
|
inlineprotected |
Definition at line 593 of file evaluator.hpp.
|
inlineprotected |
Definition at line 599 of file evaluator.hpp.
|
inlineprotected |
Definition at line 604 of file evaluator.hpp.
|
inlineprotected |
Definition at line 670 of file evaluator.hpp.
|
inlineprotected |
Definition at line 610 of file evaluator.hpp.
|
inlineprotected |
Clones a node with the new type. Override this method to add a custom node generation behaviour which does not follow the original operation graph.
| node | the original node |
Definition at line 374 of file evaluator.hpp.
|
inlineprotected |
Definition at line 242 of file evaluator.hpp.
|
inlineprotected |
Definition at line 616 of file evaluator.hpp.
|
inlineprotected |
Definition at line 622 of file evaluator.hpp.
|
inlineprotected |
Definition at line 628 of file evaluator.hpp.
|
inlineprotected |
Definition at line 640 of file evaluator.hpp.
|
inlineprotected |
Definition at line 634 of file evaluator.hpp.
|
inlineprotected |
Definition at line 306 of file evaluator.hpp.
|
inlineprotected |
Definition at line 646 of file evaluator.hpp.
|
inlineprotected |
Definition at line 652 of file evaluator.hpp.
|
inlineprotected |
Definition at line 664 of file evaluator.hpp.
|
inlineprotected |
Definition at line 658 of file evaluator.hpp.
|
inline |
Performs all the operations required to calculate the dependent variables with a (potentially) new data type
| indepNew | The new independent variables. |
| depOld | Dependent variable vector representing the operations that are going to be executed to determine the new variables (all variables must belong to the same code handler) |
| CGException | on error (such as an unhandled operation type) |
Definition at line 93 of file evaluator.hpp.
|
inline |
Performs all the operations required to calculate the dependent variables with a (potentially) new data type
| indepNew | The new independent variables. |
| depNew | The new dependent variable vector to be computed. |
| depOld | Dependent variable vector representing the operations that are going to be executed to determine the new variables (all variables must belong to the same code handler) |
| CGException | on error (such as an different sizes of depNew and depOld or an unhandled operation type) |
Definition at line 114 of file evaluator.hpp.
|
inline |
Performs all the operations required to calculate the dependent variables with a (potentially) new data type
| indepNew | The new independent variables. |
| indepSize | The size of the array of independent variables. |
| depNew | The new dependent variable vector that will be created. |
| depOld | Dependent variable vector representing the operations that are going to be executed to determine the new variables (all variables must belong to the same code handler) |
| depSize | The size of the array of dependent variables. |
| CGException | on error (such as an unhandled operation type) |
Definition at line 137 of file evaluator.hpp.
|
inlineprotected |
Definition at line 676 of file evaluator.hpp.
|
inlineinherited |
Provides the number of atomic function evaluations. The same function can be considered more than once.
Definition at line 104 of file evaluator_ad.hpp.
|
inline |
Whenever printFor_ is set to true it will add a CppAD::PrintFor(pos, "", var, name) to every variable with a name so that names can be recovered using a OperationNodeNameStreambuf. This method provides the pos value used in CppAD::PrintFor.
Definition at line 105 of file evaluator_adcg.hpp.
|
inline |
Whenever set to true it will copy the name in original operation nodes into new operation nodes created in AD<CG>. The default value is true.
Definition at line 122 of file evaluator_adcg.hpp.
|
inline |
true if a CppAD::PrintFor(pos, "", var, name) will be added to every variable with a name so that names can be recovered using a OperationNodeNameStreambuf. The default value is false.
Definition at line 83 of file evaluator_adcg.hpp.
|
inlineinherited |
Whether or not the nodes with an operation type 'Pri' are printed out during the evaluation.
Definition at line 71 of file evaluator_ad.hpp.
|
inline |
Definition at line 78 of file evaluator.hpp.
|
inlineprotected |
Definition at line 190 of file evaluator.hpp.
|
inlineprotected |
Definition at line 684 of file evaluator.hpp.
|
inlineprotected |
Definition at line 132 of file evaluator_adcg.hpp.
|
inlineprotected |
Definition at line 267 of file evaluator.hpp.
|
inline |
Whenever set to true it will copy the name in original operation nodes into new operation nodes created in AD<CG>.
Definition at line 113 of file evaluator_adcg.hpp.
|
inline |
Whenever set to true it will add a CppAD::PrintFor(pos, "", var, name) to every variable with a name so that names can be recovered using a OperationNodeNameStreambuf.
Definition at line 73 of file evaluator_adcg.hpp.
|
inline |
Whenever printFor_ is set to true it will add a CppAD::PrintFor(pos, "", var, name) to every variable with a name so that names can be recovered using a OperationNodeNameStreambuf. This method sets the pos value used in CppAD::PrintFor.
Definition at line 94 of file evaluator_adcg.hpp.
|
inlineinherited |
Defines whether or not to print out the nodes with an operation type 'Pri' during the evaluation.
Definition at line 63 of file evaluator_ad.hpp.
|
protected |
Whenever set to true it will copy the name in original operation nodes into new operation nodes created in AD<CG>.
Definition at line 55 of file evaluator_adcg.hpp.
Referenced by isCopyAdCgName(), processActiveOut(), and setCopyAdCgName().
|
protected |
Definition at line 44 of file evaluator_ad.hpp.
|
protected |
Definition at line 56 of file evaluator.hpp.
|
protected |
Definition at line 52 of file evaluator.hpp.
|
protected |
Definition at line 53 of file evaluator.hpp.
|
protected |
Definition at line 43 of file evaluator_ad.hpp.
|
protected |
Definition at line 54 of file evaluator.hpp.
|
protected |
Definition at line 50 of file evaluator.hpp.
|
protected |
Definition at line 51 of file evaluator.hpp.
|
protected |
Definition at line 57 of file evaluator.hpp.
|
protected |
Whenever set to true it will add a CppAD::PrintFor(0, "", var, name) to every variable with a name so that names can be recovered using a OperationNodeNameStreambuf.
Definition at line 46 of file evaluator_adcg.hpp.
Referenced by isPrintFor(), processActiveOut(), and setPrintFor().
|
protected |
Pos value used in CppAD::PrintFor(pos, ...)
Definition at line 50 of file evaluator_adcg.hpp.
Referenced by getPrintForPos(), processActiveOut(), and setPrintForPos().
|
protectedinherited |
Whether or not the nodes with an operation type 'Pri' are printed out during the evaluation.
Definition at line 49 of file evaluator_ad.hpp.
|
protected |
Definition at line 55 of file evaluator.hpp.