CppADCodeGen 2.4.3
A C++ Algorithmic Differentiation Package with Source Code Generation
|
#include <evaluator_solve.hpp>
Public Types | |
using | ActiveOut = CG<Scalar> |
using | SourceCodePath = typename CodeHandler<Scalar>::SourceCodePath |
using | ActiveIn |
using | NodeIn |
using | NodeOut |
using | ArgIn |
using | ArgOut |
using | Base |
Public Member Functions | |
EvaluatorCloneSolve (CodeHandler< Scalar > &handler, const std::vector< const SourceCodePath * > &paths, const std::vector< const std::vector< CG< Scalar > * > * > &replaceOnPath) | |
EvaluatorCloneSolve (CodeHandler< Scalar > &handler, const BidirGraph< Scalar > &pathGraph, const std::map< const PathNodeEdges< Scalar > *, CG< Scalar > > &replaceOnGraph) | |
EvaluatorCloneSolve (CodeHandler< Scalar > &handler, const std::set< const OperationNode< Scalar > * > &clone, const std::map< const OperationPathNode< Scalar >, CG< Scalar > > &replaceArgument) | |
void | setPrintOutPrintOperations (bool print) |
bool | isPrintOutPrintOperations () const |
bool | isUnderEvaluation () |
std::vector< CG< Scalar > > | evaluate (ArrayView< const CG< Scalar > > indepNew, ArrayView< const CG< Scalar > > depOld) |
void | evaluate (ArrayView< const CG< Scalar > > indepNew, ArrayView< CG< Scalar > > depNew, ArrayView< const CG< Scalar > > depOld) |
void | evaluate (const CG< Scalar > *indepNew, size_t indepSize, CG< Scalar > *depNew, const CG< Scalar > *depOld, size_t depSize) |
Protected Types | |
using | Super = EvaluatorCG<Scalar, Scalar, FinalEvaluatorType> |
Protected Member Functions | |
ActiveOut | evalOperation (OperationNode< Scalar > &node) |
void | analyzeOutIndeps (const ActiveOut *indep, size_t n) |
void | clear () |
void | processActiveOut (const NodeIn &node, ActiveOut &a) |
ActiveOut | evalPrint (const NodeIn &node) |
void | evalAtomicOperation (const NodeIn &node) |
ActiveOut | evalArrayElement (const NodeIn &node) |
ActiveOut | makeArray (const NodeIn &node) |
ActiveOut | makeArray (const NodeIn &node, std::vector< Scalar > &values, bool &valuesDefined, bool &allParameters) |
ActiveOut | makeDenseArray (const NodeIn &node) |
ActiveOut | makeSparseArray (const NodeIn &node) |
CG< Scalar > | evalAssign (const NodeIn &node) |
CG< Scalar > | evalAbs (const NodeIn &node) |
CG< Scalar > | evalAcos (const NodeIn &node) |
CG< Scalar > | evalAdd (const NodeIn &node) |
CG< Scalar > | evalAlias (const NodeIn &node) |
CG< Scalar > | evalAsin (const NodeIn &node) |
CG< Scalar > | evalAtan (const NodeIn &node) |
CG< Scalar > | evalCompareLt (const NodeIn &node) |
CG< Scalar > | evalCompareLe (const NodeIn &node) |
CG< Scalar > | evalCompareEq (const NodeIn &node) |
CG< Scalar > | evalCompareGe (const NodeIn &node) |
CG< Scalar > | evalCompareGt (const NodeIn &node) |
CG< Scalar > | evalCompareNe (const NodeIn &node) |
CG< Scalar > | evalCosh (const NodeIn &node) |
CG< Scalar > | evalCos (const NodeIn &node) |
CG< Scalar > | evalDiv (const NodeIn &node) |
CG< Scalar > | evalExp (const NodeIn &node) |
CG< Scalar > | evalIndependent (const NodeIn &node) |
CG< Scalar > | evalLog (const NodeIn &node) |
CG< Scalar > | evalMul (const NodeIn &node) |
CG< Scalar > | evalPow (const NodeIn &node) |
CG< Scalar > | evalSign (const NodeIn &node) |
CG< Scalar > | evalSinh (const NodeIn &node) |
CG< Scalar > | evalSin (const NodeIn &node) |
CG< Scalar > | evalSqrt (const NodeIn &node) |
CG< Scalar > | evalSub (const NodeIn &node) |
CG< Scalar > | evalTanh (const NodeIn &node) |
CG< Scalar > | evalTan (const NodeIn &node) |
CG< Scalar > | evalMinus (const NodeIn &node) |
CG< Scalar > | evalUnsupportedOperation (const NodeIn &node) |
CG< Scalar > | evalArg (const std::vector< Argument< Scalar > > &args, size_t pos) |
CG< Scalar > | evalArg (const Argument< Scalar > &arg, size_t pos) |
void | prepareNewEvaluation () |
CG< Scalar > | evalCG (const CG< Scalar > &dep) |
const CG< Scalar > & | evalOperations (OperationNode< Scalar > &node) |
CG< Scalar > * | saveEvaluation (const OperationNode< Scalar > &node, CG< Scalar > &&result) |
std::vector< CG< Scalar > > & | evalArrayCreationOperation (const OperationNode< Scalar > &node) |
std::vector< CG< Scalar > > & | evalSparseArrayCreationOperation (const OperationNode< Scalar > &node) |
Static Protected Member Functions | |
static void | processArray (const std::vector< ActiveOut > &array, std::vector< Scalar > &values, bool &valuesDefined, bool &allParameters) |
static bool | isParameters (const CppAD::vector< ActiveOut > &tx) |
static bool | isValuesDefined (const std::vector< ArgOut > &tx) |
Protected Attributes | |
CodeHandler< Scalar > * | outHandler_ |
std::map< const NodeIn *, std::vector< Scalar * > > | atomicEvalResults_ |
bool | printOutPriOperations_ |
CodeHandler< Scalar > & | handler_ |
const CG< Scalar > * | indep_ |
CodeHandlerVector< Scalar, std::unique_ptr< CG< Scalar > > > | evals_ |
std::map< size_t, std::vector< CG< Scalar > > * > | evalsArrays_ |
std::map< size_t, std::vector< CG< Scalar > > * > | evalsSparseArrays_ |
bool | underEval_ |
size_t | depth_ |
SourceCodePath | path_ |
Specialization of EvaluatorCG which can replace some operations. It only clones some of the nodes. It is used by the symbolic solver.
Definition at line 27 of file evaluator_solve.hpp.
|
inherited |
Definition at line 35 of file evaluator_cg.hpp.
using CppAD::cg::EvaluatorCloneSolve< Scalar >::ActiveOut = CG<Scalar> |
Definition at line 35 of file evaluator_solve.hpp.
|
inherited |
Definition at line 39 of file evaluator_cg.hpp.
|
inherited |
Definition at line 40 of file evaluator_cg.hpp.
|
inherited |
Definition at line 352 of file evaluator.hpp.
|
inherited |
Definition at line 37 of file evaluator_cg.hpp.
|
inherited |
Definition at line 38 of file evaluator_cg.hpp.
using CppAD::cg::EvaluatorCloneSolve< Scalar >::SourceCodePath = typename CodeHandler<Scalar>::SourceCodePath |
Definition at line 36 of file evaluator_solve.hpp.
|
protected |
Definition at line 38 of file evaluator_solve.hpp.
|
inline |
Creates a new evaluator.
handler | |
paths | operation nodes in a path which should be cloned (there shouldn't be multiple usages of these nodes) |
replaceOnPath | replacements for the operations along the paths (a null means that the original should be cloned) |
Definition at line 78 of file evaluator_solve.hpp.
|
inline |
Creates a new evaluator.
handler | |
pathGraph | the operation paths which should be cloned |
replaceOnGraph | replacements for the operations along the graph |
Definition at line 103 of file evaluator_solve.hpp.
|
inline |
Creates a new evaluator.
handler | |
clone | operations which should be cloned |
replaceArgument | replacements for the operations along the paths |
Definition at line 122 of file evaluator_solve.hpp.
|
inlineprotectedinherited |
Definition at line 88 of file evaluator_cg.hpp.
|
inlineprotectedinherited |
Definition at line 98 of file evaluator_cg.hpp.
|
inlineprotectedinherited |
Definition at line 487 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 493 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 499 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 505 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 364 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 364 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 281 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 229 of file evaluator_cg.hpp.
|
inlineprotectedinherited |
Definition at line 527 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 481 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 533 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 152 of file evaluator_cg.hpp.
|
inlineprotectedinherited |
Definition at line 216 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 551 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 557 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 563 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 545 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 539 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 569 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 581 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 575 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 587 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 593 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 599 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 604 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 670 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 610 of file evaluator.hpp.
|
inlineprotected |
Definition at line 140 of file evaluator_solve.hpp.
|
inlineprotectedinherited |
Definition at line 242 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 616 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 127 of file evaluator_cg.hpp.
|
inlineprotectedinherited |
Definition at line 628 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 640 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 634 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 306 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 646 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 652 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 664 of file evaluator.hpp.
|
inlineprotectedinherited |
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.
|
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.
|
inlineprotectedinherited |
Definition at line 676 of file evaluator.hpp.
|
inlinestaticprotectedinherited |
Definition at line 348 of file evaluator_cg.hpp.
|
inlineinherited |
Whether or not the nodes with an operation type 'Pri' are printed out during the evaluation.
Definition at line 78 of file evaluator_cg.hpp.
|
inlineinherited |
Definition at line 78 of file evaluator.hpp.
|
inlinestaticprotectedinherited |
Definition at line 357 of file evaluator_cg.hpp.
|
inlineprotectedinherited |
Definition at line 262 of file evaluator_cg.hpp.
|
inlineprotectedinherited |
Definition at line 270 of file evaluator_cg.hpp.
|
inlineprotectedinherited |
Definition at line 290 of file evaluator_cg.hpp.
|
inlineprotectedinherited |
Definition at line 310 of file evaluator_cg.hpp.
|
inlineprotectedinherited |
Definition at line 190 of file evaluator.hpp.
|
inlineprotectedinherited |
Definition at line 114 of file evaluator_cg.hpp.
|
inlinestaticprotectedinherited |
Definition at line 330 of file evaluator_cg.hpp.
|
inlineprotectedinherited |
Definition at line 267 of file evaluator.hpp.
|
inlineinherited |
Defines whether or not to print out the nodes with an operation type 'Pri' during the evaluation.
Definition at line 70 of file evaluator_cg.hpp.
|
protectedinherited |
Cache for the evaluation of atomic operations
Definition at line 51 of file evaluator_cg.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 |
The source code handler used to create the evaluation results
Definition at line 47 of file evaluator_cg.hpp.
|
protectedinherited |
Definition at line 57 of file evaluator.hpp.
|
protectedinherited |
Whether or not the nodes with an operation type 'Pri' are printed out during the evaluation.
Definition at line 56 of file evaluator_cg.hpp.
|
protectedinherited |
Definition at line 55 of file evaluator.hpp.