CppADCodeGen 2.4.3
A C++ Algorithmic Differentiation Package with Source Code Generation
|
#include <evaluator.hpp>
Public Types | |
using | Base = EvaluatorBase< ScalarIn, ScalarOut, ActiveOut, FinalEvaluatorType > |
using | NodeIn = OperationNode< ScalarIn > |
using | ArgIn = Argument< ScalarIn > |
Public Member Functions | |
EvaluatorOperations (CodeHandler< ScalarIn > &handler) | |
bool | isUnderEvaluation () |
std::vector< ActiveOut > | evaluate (ArrayView< const ActiveOut > indepNew, ArrayView< const CG< ScalarIn > > depOld) |
void | evaluate (ArrayView< const ActiveOut > indepNew, ArrayView< ActiveOut > depNew, ArrayView< const CG< ScalarIn > > depOld) |
void | evaluate (const ActiveOut *indepNew, size_t indepSize, ActiveOut *depNew, const CG< ScalarIn > *depOld, size_t depSize) |
Protected Types | |
using | SourceCodePath = typename CodeHandler< ScalarIn >::SourceCodePath |
Protected Member Functions | |
ActiveOut | evalOperation (OperationNode< ScalarIn > &node) |
ActiveOut | evalAssign (const NodeIn &node) |
ActiveOut | evalAbs (const NodeIn &node) |
ActiveOut | evalAcos (const NodeIn &node) |
ActiveOut | evalAdd (const NodeIn &node) |
ActiveOut | evalAlias (const NodeIn &node) |
ActiveOut | evalArrayElement (const NodeIn &node) |
ActiveOut | evalAsin (const NodeIn &node) |
ActiveOut | evalAtan (const NodeIn &node) |
ActiveOut | evalCompareLt (const NodeIn &node) |
ActiveOut | evalCompareLe (const NodeIn &node) |
ActiveOut | evalCompareEq (const NodeIn &node) |
ActiveOut | evalCompareGe (const NodeIn &node) |
ActiveOut | evalCompareGt (const NodeIn &node) |
ActiveOut | evalCompareNe (const NodeIn &node) |
ActiveOut | evalCosh (const NodeIn &node) |
ActiveOut | evalCos (const NodeIn &node) |
ActiveOut | evalDiv (const NodeIn &node) |
ActiveOut | evalExp (const NodeIn &node) |
ActiveOut | evalIndependent (const NodeIn &node) |
ActiveOut | evalLog (const NodeIn &node) |
ActiveOut | evalMul (const NodeIn &node) |
ActiveOut | evalPow (const NodeIn &node) |
ActiveOut | evalPrint (const NodeIn &node) |
ActiveOut | evalSign (const NodeIn &node) |
ActiveOut | evalSinh (const NodeIn &node) |
ActiveOut | evalSin (const NodeIn &node) |
ActiveOut | evalSqrt (const NodeIn &node) |
ActiveOut | evalSub (const NodeIn &node) |
ActiveOut | evalTanh (const NodeIn &node) |
ActiveOut | evalTan (const NodeIn &node) |
ActiveOut | evalMinus (const NodeIn &node) |
ActiveOut | evalUnsupportedOperation (const NodeIn &node) |
void | evalAtomicOperation (const NodeIn &node) |
void | processActiveOut (const NodeIn &node, ActiveOut &a) |
ActiveOut | evalArg (const std::vector< Argument< ScalarIn > > &args, size_t pos) |
ActiveOut | evalArg (const Argument< ScalarIn > &arg, size_t pos) |
void | prepareNewEvaluation () |
void | clear () |
void | analyzeOutIndeps (const ActiveOut *indep, size_t n) |
ActiveOut | evalCG (const CG< ScalarIn > &dep) |
const ActiveOut & | evalOperations (OperationNode< ScalarIn > &node) |
ActiveOut * | saveEvaluation (const OperationNode< ScalarIn > &node, ActiveOut &&result) |
std::vector< ActiveOut > & | evalArrayCreationOperation (const OperationNode< ScalarIn > &node) |
std::vector< ActiveOut > & | evalSparseArrayCreationOperation (const OperationNode< ScalarIn > &node) |
Protected Attributes | |
CodeHandler< ScalarIn > & | handler_ |
const ActiveOut * | indep_ |
CodeHandlerVector< ScalarIn, std::unique_ptr< ActiveOut > > | evals_ |
std::map< size_t, std::vector< ActiveOut > * > | evalsArrays_ |
std::map< size_t, std::vector< ActiveOut > * > | evalsSparseArrays_ |
bool | underEval_ |
size_t | depth_ |
SourceCodePath | path_ |
Friends | |
class | EvaluatorBase< ScalarIn, ScalarOut, ActiveOut, FinalEvaluatorType > |
Defines the default operations for evaluators. Evaluators allow to reprocess operations defined in an operation graph for a different set of independent variables and (possibly) data types.
This allows static polymorphism through curiously recurring template pattern (CRTP). Therefore the default behaviour can be overridden without the use of virtual methods. This class should not be instantiated directly.
Definition at line 345 of file evaluator.hpp.
using CppAD::cg::EvaluatorOperations< ScalarIn, ScalarOut, ActiveOut, FinalEvaluatorType >::ArgIn = Argument<ScalarIn> |
Definition at line 354 of file evaluator.hpp.
using CppAD::cg::EvaluatorOperations< ScalarIn, ScalarOut, ActiveOut, FinalEvaluatorType >::Base = EvaluatorBase<ScalarIn, ScalarOut, ActiveOut, FinalEvaluatorType> |
Definition at line 352 of file evaluator.hpp.
using CppAD::cg::EvaluatorOperations< ScalarIn, ScalarOut, ActiveOut, FinalEvaluatorType >::NodeIn = OperationNode<ScalarIn> |
Definition at line 353 of file evaluator.hpp.
|
protectedinherited |
Definition at line 48 of file evaluator.hpp.
|
inline |
Definition at line 356 of file evaluator.hpp.
|
inlinevirtual |
Definition at line 360 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 211 of file evaluator.hpp.
|
inlineprotectedinherited |
clean-up
Definition at line 197 of file evaluator.hpp.
Referenced by CppAD::cg::EvaluatorCG< ScalarIn, ScalarOut, FinalEvaluatorType >::clear(), and CppAD::cg::EvaluatorBase< ScalarIn, ScalarOut, ActiveOut, FinalEvaluatorType >::evaluate().
|
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 230 of file evaluator.hpp.
|
inlineprotected |
Definition at line 225 of file evaluator.hpp.
|
inlineprotectedinherited |
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 |
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.
|
inlineprotectedinherited |
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.
|
inlineprotectedinherited |
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.
|
inlineinherited |
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.
|
inlineinherited |
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.
Referenced by CppAD::cg::CodeHandler< Base >::collectVariable(), CppAD::cg::CodeHandler< Base >::collectVariableAddSub(), CppAD::cg::EvaluatorBase< ScalarIn, ScalarOut, ActiveOut, FinalEvaluatorType >::evaluate(), CppAD::cg::EvaluatorBase< ScalarIn, ScalarOut, ActiveOut, FinalEvaluatorType >::evaluate(), CppAD::cg::BipartiteGraph< Base >::generateNewModel(), and CppAD::cg::DummyDerivatives< Base >::generateReorderedModel().
|
inlineinherited |
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 |
Definition at line 78 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 190 of file evaluator.hpp.
|
inlineprotected |
Definition at line 684 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 267 of file evaluator.hpp.
|
friend |
must be friends with its super classes since there can be a cast to this type due to the curiously recurring template pattern (CRTP)
Definition at line 306 of file evaluator.hpp.
|
protectedinherited |
Definition at line 56 of file evaluator.hpp.
|
protectedinherited |
Definition at line 52 of file evaluator.hpp.
|
protectedinherited |
Definition at line 53 of file evaluator.hpp.
|
protectedinherited |
Definition at line 54 of file evaluator.hpp.
|
protectedinherited |
Definition at line 50 of file evaluator.hpp.
|
protectedinherited |
Definition at line 51 of file evaluator.hpp.
|
protectedinherited |
Definition at line 57 of file evaluator.hpp.
|
protectedinherited |
Definition at line 55 of file evaluator.hpp.