CppADCodeGen  2.4.3
A C++ Algorithmic Differentiation Package with Source Code Generation
CppAD::cg::EvaluatorOperations< ScalarIn, ScalarOut, ActiveOut, FinalEvaluatorType > Class Template Reference
Inheritance diagram for CppAD::cg::EvaluatorOperations< ScalarIn, ScalarOut, ActiveOut, FinalEvaluatorType >:
Inheritance graph
Collaboration diagram for CppAD::cg::EvaluatorOperations< ScalarIn, ScalarOut, ActiveOut, FinalEvaluatorType >:
Collaboration graph

Public Types

using Base = EvaluatorBase< ScalarIn, ScalarOut, ActiveOut, FinalEvaluatorType >
 
using NodeIn = OperationNode< ScalarIn >
 
using ArgIn = Argument< ScalarIn >
 

Public Member Functions

 EvaluatorOperations (CodeHandler< ScalarIn > &handler)
 

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)
 

Friends

class EvaluatorBase< ScalarIn, ScalarOut, ActiveOut, FinalEvaluatorType >
 

Detailed Description

template<class ScalarIn, class ScalarOut, class ActiveOut, class FinalEvaluatorType>
class CppAD::cg::EvaluatorOperations< 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 24 of file evaluator.hpp.

Member Function Documentation

◆ evalOperation()

template<class ScalarIn , class ScalarOut , class ActiveOut , class FinalEvaluatorType >
ActiveOut CppAD::cg::EvaluatorOperations< ScalarIn, ScalarOut, ActiveOut, FinalEvaluatorType >::evalOperation ( OperationNode< ScalarIn > &  node)
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.

Parameters
nodethe original node
Returns
the clone of the original node

Definition at line 374 of file evaluator.hpp.

Friends And Related Function Documentation

◆ EvaluatorBase< ScalarIn, ScalarOut, ActiveOut, FinalEvaluatorType >

template<class ScalarIn , class ScalarOut , class ActiveOut , class FinalEvaluatorType >
friend class EvaluatorBase< ScalarIn, ScalarOut, ActiveOut, FinalEvaluatorType >
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 350 of file evaluator.hpp.


The documentation for this class was generated from the following file: