1 #ifndef CPPAD_CG_LANGUAGE_INCLUDED
2 #define CPPAD_CG_LANGUAGE_INCLUDED
31 using ScopeIDType =
typename CodeHandler<Base>::ScopeIDType;
85 const std::set<const Node*>& indexes;
87 const std::set<RandomIndexPattern*>& indexRandomPatterns;
89 const std::vector<IndexPattern*>& loopDependentIndexPatterns;
91 const std::vector<IndexPattern*>& loopIndependentIndexPatterns;
115 const std::vector<Node*>& vo,
118 const std::map<size_t, size_t>& atomicId2Index,
119 const std::map<size_t, std::string>& atomicId2Name,
120 const std::vector<int>& atomicMaxForward,
121 const std::vector<int>& atomicMaxReverse,
123 const std::set<const Node*>& indexes,
124 const std::set<RandomIndexPattern*>& idxRandomPatterns,
125 const std::vector<IndexPattern*>& dependentIndexPatterns,
126 const std::vector<IndexPattern*>& independentIndexPatterns,
144 indexRandomPatterns(idxRandomPatterns),
145 loopDependentIndexPatterns(dependentIndexPatterns),
146 loopIndependentIndexPatterns(independentIndexPatterns),
165 virtual void generateSourceCode(std::ostream& out,
177 size_t totalUseCount,
178 size_t opCount)
const = 0;
180 virtual bool requiresVariableArgument(
enum CGOpCode op,
181 size_t argIndex)
const = 0;