1 # ifndef CPPAD_CORE_HESSIAN_HPP
2 # define CPPAD_CORE_HESSIAN_HPP
141 template <
typename Base>
142 template <
typename Vector>
144 {
size_t i, m = Range();
147 "Hessian: index i is not less than range dimension for f"
151 for(i = 0; i < m; i++)
155 return Hessian(x, w);
159 template <
typename Base>
160 template <
typename Vector>
168 CheckSimpleVector<Base, Vector>();
171 size_t(x.size()) == n,
172 "Hessian: length of x not equal domain dimension for f"
175 size_t(w.size()) == Range(),
176 "Hessian: length of w not equal range dimension for f"
187 for(j = 0; j < n; j++)
195 for(j = 0; j < n; j++)
205 for(k = 0; k < n; k++)
206 hes[k * n + j] = ddw[k * 2 + 1];
#define CPPAD_ASSERT_KNOWN(exp, msg)
Check that exp is true, if not print msg and terminate execution.
VectorBase Hessian(const VectorBase &x, const VectorBase &w)
calculate Hessian for one component of f