1#ifndef CPPAD_CG_DECLARE_CG_LOOPS_INCLUDED
2#define CPPAD_CG_DECLARE_CG_LOOPS_INCLUDED
27using SizeN1stIt = std::pair<size_t, size_t>;
29using pairss = std::pair<size_t, size_t>;
31class JacobianWithLoopsRowInfo;
36class LoopNonIndexedLocator;
45class JacobianTermContrib;
48class JacobianColGroup;
51class HessianWithLoopsInfo;
54class HessianWithLoopsEquationGroupInfo;
101 const std::map<SizeN1stIt, std::pair<
size_t, std::set<size_t> > >&
first2Iterations);
103inline std::vector<size_t> createIndexConditionExpression(
const std::set<size_t>& iterations,
109 const std::set<size_t>& iterations,
115inline void determineForRevUsagePatterns(
const std::map<
LoopModel<Base>*, std::map<
size_t, std::map<
size_t, std::set<size_t> > > >&
loopGroups,
116 const std::map<
size_t, std::vector<std::set<size_t> > >&
userElLocation,
117 const std::map<size_t, bool>& ordered,
122void generateFunctionDeclarationSourceLoopForRev(std::ostringstream&
cache,
126 const std::map<
LoopModel<Base>*, std::map<
size_t, std::map<
size_t, std::set<size_t> > > >& _loopRev2Groups,
132 const std::vector<std::vector<
CG<Base> > >&
vw,
136 std::vector<std::map<
size_t,
CG<Base> > >& jac,
139 std::vector<std::map<
size_t, std::map<
size_t,
CG<Base> > > >&
vhess,
bool GreaterThanZero(const cg::CG< Base > &x)