CppADCodeGen  HEAD
A C++ Algorithmic Differentiation Package with Source Code Generation
CppAD::cg::EquationPattern< Base > Class Template Reference
Collaboration diagram for CppAD::cg::EquationPattern< Base >:
Collaboration graph

Public Member Functions

 EquationPattern (const CG< Base > &ref, size_t iDepRef)
 
 EquationPattern (const EquationPattern< Base > &other)=delete
 
EquationPatternoperator= (const EquationPattern< Base > &rhs)=delete
 
bool testAdd (size_t iDep2, const CG< Base > &dep2, size_t &minColor, CodeHandlerVector< Base, size_t > &varColor)
 
void findIndexedPath (size_t dep, const std::vector< CG< Base > > &depVals, CodeHandlerVector< Base, bool > &varIndexed, std::set< const OperationNode< Base > *> &indexedOperations)
 
std::set< const OperationNode< Base > * > findOperationsUsingIndependents (OperationNode< Base > &node) const
 
bool containsConstantIndependent (const OperationNode< Base > *operation, size_t argumentIndex) const
 
void detectNonIndexedIndependents ()
 

Static Public Member Functions

static void uncolor (OperationNode< Base > *node, CodeHandlerVector< Base, bool > &varIndexed)
 

Public Attributes

const CG< Base > & depRef
 
const size_t depRefIndex
 
std::set< size_t > dependents
 
std::map< size_t, std::map< const OperationNode< Base > *, OperationNode< Base > * > > operationEO2Reference
 
IndexedIndependent< Base > indexedOpIndep
 
std::map< const OperationNode< Base > *, std::set< size_t > > constOperationIndependents
 

Detailed Description

template<class Base>
class CppAD::cg::EquationPattern< Base >

Group of variables with the same evaluation pattern (same equation different variables)

Definition at line 96 of file declare_cg.hpp.

Member Function Documentation

◆ detectNonIndexedIndependents()

template<class Base>
void CppAD::cg::EquationPattern< Base >::detectNonIndexedIndependents ( )
inline

Determine which independent variables in the loop model do not require an index (always the same for all iterations)

Definition at line 181 of file equation_pattern.hpp.

Member Data Documentation

◆ constOperationIndependents

template<class Base>
std::map<const OperationNode<Base>*, std::set<size_t> > CppAD::cg::EquationPattern< Base >::constOperationIndependents

reference operation -> non indexed argument positions

Definition at line 85 of file equation_pattern.hpp.

◆ indexedOpIndep

template<class Base>
IndexedIndependent<Base> CppAD::cg::EquationPattern< Base >::indexedOpIndep

Maps the operations that used an indexed independents as direct arguments (reference operation -> argument indexes -> dependent <-> independents)

Definition at line 81 of file equation_pattern.hpp.

Referenced by CppAD::cg::Loop< Base >::createLoopModel().

◆ operationEO2Reference

template<class Base>
std::map<size_t, std::map<const OperationNode<Base>*, OperationNode<Base>*> > CppAD::cg::EquationPattern< Base >::operationEO2Reference

maps node ID used by all dependents to the operations of the reference dependent [dependent index][op] = reference operation

Definition at line 74 of file equation_pattern.hpp.

Referenced by CppAD::cg::Loop< Base >::createLoopModel().


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