26 std::vector<std::set<size_t> > evalHessSparsity;
28 std::map<pairss, std::vector<HessianElement> > indexedIndexedPositions;
30 std::map<pairss, std::vector<HessianElement> > indexedNonIndexedPositions;
32 std::map<pairss, std::vector<HessianElement> > indexedTempPositions;
34 std::map<pairss, std::vector<HessianElement> > nonIndexedIndexedPositions;
36 std::map<pairss, std::vector<HessianElement> > tempIndexedPositions;
38 std::map<pairss, std::set<size_t> > indexedTempEvals;
40 std::set<pairss> nonIndexedNonIndexedEvals;
42 std::map<pairss, std::set<size_t> > nonIndexedTempEvals;
44 std::map<pairss, std::set<size_t> > tempNonIndexedEvals;
46 std::map<pairss, std::map<size_t, std::set<size_t> > > tempTempEvals;
50 std::map<size_t, std::map<size_t, CG<Base> > >
hess;
56 evalHessSparsity(
loop.getTapeIndependentCount()) {
66 std::vector<std::set<size_t> > evalJacSparsity;
68 std::vector<HessianWithLoopsEquationGroupInfo<Base> > equationGroups;
70 std::map<pairss, size_t> nonIndexedNonIndexedPosition;
72 std::map<pairss, std::set<size_t> > nonLoopNonIndexedNonIndexed;
77 std::vector<CG<Base> > x;
78 std::vector<CG<Base> > w;
82 std::vector<std::map<size_t, CG<Base> > >
dyiDzk;
83 std::vector<std::set<size_t> > noLoopEvalHessTempsSparsity;
84 std::map<size_t, std::map<size_t, CG<Base> > > dzDxx;
87 std::vector<IfElseInfo<Base> > ifElses;
99 evalJacSparsity(
loop.getTapeDependentCount()),
120 vw[0].resize(w.size());
124 size_t nEqGroups = equationGroups.size();
131 for (
size_t i = 0;
i < w.size();
i++) {
139 generateLoopForJacHes(
fun, x,
vw,
y,
140 model->getJacobianSparsity(),
143 model->getHessianSparsity(),
144 equationGroups[
g].evalHessSparsity,
149 equationGroups[
g].hess =
vhess[0];