|
CppADCodeGen
HEAD
A C++ Algorithmic Differentiation Package with Source Code Generation
|


Public Types | |
| using | iterator = typename std::vector< Argument< Base > >::iterator |
| using | const_iterator = typename std::vector< Argument< Base > >::const_iterator |
| using | const_reverse_iterator = typename std::vector< Argument< Base > >::const_reverse_iterator |
| using | reverse_iterator = typename std::vector< Argument< Base > >::reverse_iterator |
Public Member Functions | |
| void | makeAlias (const Argument< Base > &other) |
| CodeHandler< Base > * | getCodeHandler () const |
| CGOpCode | getOperationType () const |
| void | setOperation (CGOpCode op, const std::vector< Argument< Base > > &arguments=std::vector< Argument< Base > >()) |
| const std::vector< Argument< Base > > & | getArguments () const |
| std::vector< Argument< Base > > & | getArguments () |
| const std::vector< size_t > & | getInfo () const |
| std::vector< size_t > & | getInfo () |
| const std::string * | getName () const |
| void | setName (const std::string &name) |
| void | clearName () |
| size_t | getHandlerPosition () const |
| iterator | begin () |
| const_iterator | begin () const |
| iterator | end () |
| const_iterator | end () const |
| reverse_iterator | rbegin () |
| const_reverse_iterator | rbegin () const |
| reverse_iterator | rend () |
| const_reverse_iterator | rend () const |
| const_iterator | cbegin () const noexcept |
| const_iterator | cend () const noexcept |
| const_reverse_iterator | crbegin () const noexcept |
| const_reverse_iterator | crend () const noexcept |
Static Public Member Functions | |
| static std::unique_ptr< OperationNode< Base > > | makeTemporaryNode (CGOpCode op, const std::vector< size_t > &info, const std::vector< Argument< Base > > &args) |
Static Public Attributes | |
| static const std::set< CGOpCode > | CUSTOM_NODE_CLASS = makeCustomNodeClassesSet() |
Protected Member Functions | |
| OperationNode (const OperationNode &orig) | |
| OperationNode (CodeHandler< Base > *handler, CGOpCode op) | |
| OperationNode (CodeHandler< Base > *handler, CGOpCode op, const Argument< Base > &arg) | |
| OperationNode (CodeHandler< Base > *handler, CGOpCode op, std::vector< Argument< Base > > &&args) | |
| OperationNode (CodeHandler< Base > *handler, CGOpCode op, std::vector< size_t > &&info, std::vector< Argument< Base > > &&args) | |
| OperationNode (CodeHandler< Base > *handler, CGOpCode op, const std::vector< size_t > &info, const std::vector< Argument< Base > > &args) | |
| void | setHandlerPosition (size_t pos) |
Static Protected Member Functions | |
| static std::set< CGOpCode > | makeCustomNodeClassesSet () noexcept |
Friends | |
| class | CodeHandler< Base > |
An operation node.
Definition at line 22 of file argument.hpp.
|
inline |
Clears any name assigned to this node.
Definition at line 169 of file operation_node.hpp.
|
inline |
Provides the arguments used in the operation represented by this node.
Definition at line 117 of file operation_node.hpp.
Referenced by CppAD::cg::ArrayIdCompresser< Base >::ArrayIdCompresser(), CppAD::cg::CodeHandler< ScalarOut >::breakCyclicDependency(), CppAD::cg::LanguageMathML< Base >::createHtmlID(), CppAD::cg::CodeHandler< ScalarOut >::dependentAdded2EvaluationQueue(), CppAD::cg::EvaluatorCG< Scalar, Scalar, EvaluatorCloneSolve< Scalar > >::evalArrayElement(), CppAD::cg::EvaluatorCG< Scalar, Scalar, EvaluatorCloneSolve< Scalar > >::evalPrint(), CppAD::cg::EvaluatorAD< ScalarIn, ScalarOut, Evaluator< ScalarIn, ScalarOut, CppAD::AD< ScalarOut > > >::evalPrint(), CppAD::cg::CodeHandler< ScalarOut >::findLastTemporaryLocation(), CppAD::cg::CodeHandler< ScalarOut >::findPaths(), CppAD::cg::BidirGraph< Scalar >::findSingleBifurcation(), CppAD::cg::LangCDefaultHessianVarNameGenerator< Base >::generateIndexedIndependent(), CppAD::cg::LangCDefaultReverse2VarNameGenerator< Base >::generateIndexedIndependent(), CppAD::cg::LangCDefaultVariableNameGenerator< Base >::isInSameTemporaryVarArray(), CppAD::cg::LangLatexDefaultVariableNameGenerator< Base >::isInSameTemporaryVarArray(), CppAD::cg::LangMathMLDefaultVariableNameGenerator< Base >::isInSameTemporaryVarArray(), CppAD::cg::LanguageDot< Base >::printArrayCreationUsingLoop(), CppAD::cg::LanguageMathML< Base >::printArrayCreationUsingLoop(), CppAD::cg::LanguageLatex< Base >::printArrayCreationUsingLoop(), CppAD::cg::LanguageC< Base >::printArrayCreationUsingLoop(), CppAD::cg::LanguageDot< Base >::printAtomicForwardOp(), CppAD::cg::LanguageMathML< Base >::printAtomicForwardOp(), CppAD::cg::LanguageLatex< Base >::printAtomicForwardOp(), CppAD::cg::LanguageDot< Base >::printAtomicReverseOp(), CppAD::cg::LanguageMathML< Base >::printAtomicReverseOp(), CppAD::cg::LanguageLatex< Base >::printAtomicReverseOp(), CppAD::cg::LanguageDot< Base >::printConditionalAssignment(), CppAD::cg::LanguageC< Base >::pushAtomicForwardOp(), CppAD::cg::LanguageC< Base >::pushAtomicReverseOp(), CppAD::cg::CodeHandler< ScalarOut >::reorderOperations(), CppAD::cg::LanguageDot< Base >::requiresVariableDependencies(), CppAD::cg::LanguageLatex< Base >::requiresVariableDependencies(), CppAD::cg::LanguageC< Base >::requiresVariableDependencies(), CppAD::cg::ArrayIdCompresser< Base >::reserveArraySpace(), and CppAD::cg::CodeHandler< ScalarOut >::updateTemporaryVarInDiffScopes().
|
inline |
Provides the arguments used in the operation represented by this node.
Definition at line 126 of file operation_node.hpp.
|
inline |
Provides the source code handler that owns this node. It can only be null for temporary nodes.
Definition at line 85 of file operation_node.hpp.
|
inline |
Provides the index in CodeHandler which owns this OperationNode. A value of std::numeric_limits<size_t>::max() means that it is not managed by any CodeHandler. This value can change if its position changes in the CodeHandler.
Definition at line 181 of file operation_node.hpp.
Referenced by CppAD::cg::EvaluatorBase< ScalarIn, double, adouble, Evaluator< ScalarIn, double, adouble > >::clear(), CppAD::cg::LanguageDot< Base >::generateSourceCode(), CppAD::cg::LanguageMathML< Base >::getHtmlID(), CppAD::cg::CodeHandler< ScalarOut >::manageOperationNodeMemory(), CppAD::cg::LanguageDot< Base >::requiresVariableDependencies(), and CppAD::cg::CodeHandler< ScalarOut >::substituteIndependent().
|
inline |
Provides additional information used in the operation.
Definition at line 134 of file operation_node.hpp.
Referenced by CppAD::cg::EvaluatorCG< Scalar, Scalar, EvaluatorCloneSolve< Scalar > >::evalArrayElement(), CppAD::cg::LangCDefaultHessianVarNameGenerator< Base >::generateIndexedIndependent(), CppAD::cg::LangCDefaultReverse2VarNameGenerator< Base >::generateIndexedIndependent(), CppAD::cg::IndependentNodeSorter< Base >::operator()(), CppAD::cg::LanguageDot< Base >::printArrayCreationUsingLoop(), CppAD::cg::LanguageDot< Base >::printAtomicForwardOp(), CppAD::cg::LanguageMathML< Base >::printAtomicForwardOp(), CppAD::cg::LanguageLatex< Base >::printAtomicForwardOp(), CppAD::cg::LanguageDot< Base >::printAtomicReverseOp(), CppAD::cg::LanguageMathML< Base >::printAtomicReverseOp(), CppAD::cg::LanguageLatex< Base >::printAtomicReverseOp(), CppAD::cg::LanguageC< Base >::pushAtomicForwardOp(), and CppAD::cg::LanguageC< Base >::pushAtomicReverseOp().
|
inline |
Provides additional information used in the operation.
Definition at line 142 of file operation_node.hpp.
|
inline |
Provide the variable name assigned to this node.
Definition at line 151 of file operation_node.hpp.
Referenced by CppAD::cg::LanguageDot< Base >::generateSourceCode(), CppAD::cg::LanguageMathML< Base >::generateSourceCode(), CppAD::cg::LanguageC< Base >::generateSourceCode(), CppAD::cg::LanguageLatex< Base >::generateSourceCode(), CppAD::cg::LanguageC< Base >::generateTemporaryVariableDeclaration(), CppAD::cg::EvaluatorCG< Scalar, Scalar, EvaluatorCloneSolve< Scalar > >::processActiveOut(), CppAD::cg::Evaluator< ScalarIn, CG< BaseOut >, CppAD::AD< CG< BaseOut > > >::processActiveOut(), and CppAD::cg::CodeHandler< ScalarOut >::solveFor().
|
inline |
Provides the operation type represented by this node.
Definition at line 93 of file operation_node.hpp.
Referenced by CppAD::cg::DummyDerivatives< Base >::assignVar2Equation(), CppAD::cg::CodeHandler< ScalarOut >::breakCyclicDependency(), CppAD::cg::CodeHandler< ScalarOut >::checkVariableCreation(), CppAD::cg::EvaluatorBase< ScalarIn, double, adouble, Evaluator< ScalarIn, double, adouble > >::clear(), CppAD::cg::LanguageMathML< Base >::createHtmlID(), CppAD::cg::LanguageDot< Base >::createsNewVariable(), CppAD::cg::LanguageMathML< Base >::createsNewVariable(), CppAD::cg::LanguageLatex< Base >::createsNewVariable(), CppAD::cg::LanguageC< Base >::createsNewVariable(), CppAD::cg::EquationPattern< Base >::detectNonIndexedIndependents(), CppAD::cg::CodeHandler< ScalarOut >::determineLastTempVarUsage(), CppAD::cg::LanguageDot< Base >::directlyAssignsVariable(), CppAD::cg::LanguageMathML< Base >::directlyAssignsVariable(), CppAD::cg::LanguageLatex< Base >::directlyAssignsVariable(), CppAD::cg::LanguageC< Base >::directlyAssignsVariable(), CppAD::cg::EvaluatorAD< ScalarIn, ScalarOut, Evaluator< ScalarIn, ScalarOut, CppAD::AD< ScalarOut > > >::evalAtomicOperation(), CppAD::cg::EvaluatorCG< Scalar, Scalar, EvaluatorCloneSolve< Scalar > >::evalAtomicOperation(), CppAD::cg::EvaluatorOperations< ScalarIn, double, adouble, Evaluator< ScalarIn, double, adouble > >::evalOperation(), CppAD::cg::CodeHandler< ScalarOut >::findLastTemporaryLocation(), CppAD::cg::CodeHandler< ScalarOut >::findVariableDependencies(), CppAD::cg::CodeHandler< ScalarOut >::generateCode(), CppAD::cg::LangCDefaultVariableNameGenerator< Base >::generateIndexedDependent(), CppAD::cg::LangLatexDefaultVariableNameGenerator< Base >::generateIndexedDependent(), CppAD::cg::LangMathMLDefaultVariableNameGenerator< Base >::generateIndexedDependent(), CppAD::cg::LangCDefaultHessianVarNameGenerator< Base >::generateIndexedIndependent(), CppAD::cg::LangCDefaultReverse2VarNameGenerator< Base >::generateIndexedIndependent(), CppAD::cg::LangCDefaultVariableNameGenerator< Base >::generateIndexedIndependent(), CppAD::cg::LangLatexDefaultVariableNameGenerator< Base >::generateIndexedIndependent(), CppAD::cg::LangMathMLDefaultVariableNameGenerator< Base >::generateIndexedIndependent(), CppAD::cg::DummyDerivatives< Base >::generateSemiExplicitDAE(), CppAD::cg::LanguageDot< Base >::generateSourceCode(), CppAD::cg::LanguageMathML< Base >::generateSourceCode(), CppAD::cg::LanguageC< Base >::generateSourceCode(), CppAD::cg::LanguageLatex< Base >::generateSourceCode(), CppAD::cg::DependentPatternMatcher< Base >::generateTapes(), CppAD::cg::LangCDefaultVariableNameGenerator< Base >::generateTemporaryArray(), CppAD::cg::LangLatexDefaultVariableNameGenerator< Base >::generateTemporaryArray(), CppAD::cg::LangMathMLDefaultVariableNameGenerator< Base >::generateTemporaryArray(), CppAD::cg::LangCDefaultVariableNameGenerator< Base >::generateTemporarySparseArray(), CppAD::cg::LangLatexDefaultVariableNameGenerator< Base >::generateTemporarySparseArray(), CppAD::cg::LangMathMLDefaultVariableNameGenerator< Base >::generateTemporarySparseArray(), CppAD::cg::CodeHandler< ScalarOut >::getIndependentVariableIndex(), CppAD::cg::CodeHandler< Base >::LoopData::getLoopName(), CppAD::cg::CodeHandler< ScalarOut >::handleTemporaryVarInDiffScopes(), CppAD::cg::LangCDefaultHessianVarNameGenerator< Base >::isInSameIndependentArray(), CppAD::cg::LangCDefaultReverse2VarNameGenerator< Base >::isInSameIndependentArray(), CppAD::cg::CodeHandler< ScalarOut >::markCodeBlockUsed(), CppAD::cg::IndependentNodeSorter< Base >::operator()(), CppAD::cg::CodeHandler< ScalarOut >::optimizeIfs(), CppAD::cg::LanguageMathML< Base >::printArrayCreationUsingLoop(), CppAD::cg::LanguageLatex< Base >::printArrayCreationUsingLoop(), CppAD::cg::LanguageC< Base >::printArrayCreationUsingLoop(), CppAD::cg::LanguageMathML< Base >::printArrayStructInit(), CppAD::cg::LanguageLatex< Base >::printArrayStructInit(), CppAD::cg::LanguageDot< Base >::printElse(), CppAD::cg::LanguageMathML< Base >::printElse(), CppAD::cg::LanguageLatex< Base >::printElse(), CppAD::cg::LanguageDot< Base >::printElseIf(), CppAD::cg::LanguageMathML< Base >::printElseIf(), CppAD::cg::LanguageLatex< Base >::printElseIf(), CppAD::cg::LanguageDot< Base >::printIndexAssign(), CppAD::cg::LanguageDot< Base >::printLoopStart(), CppAD::cg::LanguageDot< Base >::printStartIf(), CppAD::cg::LanguageMathML< Base >::printStartIf(), CppAD::cg::LanguageLatex< Base >::printStartIf(), CppAD::cg::LanguageC< Base >::pushElse(), CppAD::cg::LanguageC< Base >::pushElseIf(), CppAD::cg::LanguageC< Base >::pushStartIf(), CppAD::cg::CodeHandler< ScalarOut >::removeIndependent(), CppAD::cg::LanguageDot< Base >::requiresVariableDependencies(), CppAD::cg::LanguageLatex< Base >::requiresVariableDependencies(), CppAD::cg::LanguageC< Base >::requiresVariableDependencies(), CppAD::cg::ArrayIdCompresser< Base >::reserveArraySpace(), CppAD::cg::CodeHandler< ScalarOut >::restoreTemporaryVar(), CppAD::cg::CodeHandler< ScalarOut >::updateTemporaryVarInDiffScopes(), and CppAD::cg::Loop< Base >::~Loop().
|
inline |
Changes the current operation type into an Alias.
| other | the operation node or value this node is going to reference |
Definition at line 70 of file operation_node.hpp.
Referenced by CppAD::cg::CodeHandler< ScalarOut >::substituteIndependent().
|
inlinestatic |
Creates a temporary operation node.
Definition at line 306 of file operation_node.hpp.
|
inline |
Defines a new variable name for this node
| name | a variable name |
Definition at line 159 of file operation_node.hpp.
Referenced by CppAD::cg::LanguageMathML< Base >::generateSourceCode(), CppAD::cg::LanguageC< Base >::generateSourceCode(), CppAD::cg::LanguageLatex< Base >::generateSourceCode(), CppAD::cg::LanguageC< Base >::generateTemporaryVariableDeclaration(), and CppAD::cg::EvaluatorCG< Scalar, Scalar, EvaluatorCloneSolve< Scalar > >::processActiveOut().
|
inline |
Changes the current operation type. The previous operation information/options might also have to be changed, use getInfo() to change it if required.
| op | the new operation type |
| arguments | the arguments for the new operation |
Definition at line 104 of file operation_node.hpp.
Referenced by CppAD::cg::CodeHandler< ScalarOut >::undoSubstituteIndependent().