Prev Next Index-> contents reference index search external Up-> CppAD ADFun Drivers Hessian CppAD-> Install Introduction AD ADFun preprocessor multi_thread library ipopt_solve Example speed Appendix ADFun-> Independent FunConstruct Dependent abort_recording seq_property FunEval Drivers FunCheck optimize Drivers-> Jacobian ForOne RevOne Hessian ForTwo RevTwo sparse_jacobian sparse_hessian Hessian-> hessian.cpp hes_lagrangian.cpp Headings-> Syntax Purpose f x l w hes Vector Hessian Uses Forward Example

Hessian: Easy Driver

Syntax
hes = f.Hessian(x, w)  hes = f.Hessian(x, l) 
Purpose
We use   F : B^n \rightarrow B^m to denote the AD function corresponding to f . The syntax above sets hes to the Hessian The syntax above sets h to the Hessian   $hes = \dpow{2}{x} \sum_{i=1}^m w_i F_i (x)$  The routine sparse_hessian may be faster in the case where the Hessian is sparse.

f
The object f has prototype       ADFun<Base> f  Note that the ADFun object f is not const (see Hessian Uses Forward below).

x
The argument x has prototype       const Vector &x  (see Vector below) and its size must be equal to n , the dimension of the domain space for f . It specifies that point at which to evaluate the Hessian.

l
If the argument l is present, it has prototype       size_t l  and is less than m , the dimension of the range space for f . It specifies the component of F for which we are evaluating the Hessian. To be specific, in the case where the argument l is present,   $w_i = \left\{ \begin{array}{ll} 1 & i = l \\ 0 & {\rm otherwise} \end{array} \right.$ 

w
If the argument w is present, it has prototype       const Vector &w  and size   m . It specifies the value of   w_i in the expression for h .

hes
The result hes has prototype       Vector hes  (see Vector below) and its size is   n * n . For   j = 0 , \ldots , n - 1  and   \ell = 0 , \ldots , n - 1   $hes [ j * n + \ell ] = \DD{ w^{\rm T} F }{ x_j }{ x_\ell } ( x )$ 

Vector
The type Vector must be a SimpleVector class with elements of type Base . The routine CheckSimpleVector will generate an error message if this is not the case.

Hessian Uses Forward
After each call to Forward , the object f contains the corresponding Taylor coefficients . After a call to Hessian, the zero order Taylor coefficients correspond to f.Forward(0, x) and the other coefficients are unspecified.

Example
The routines hessian.cpp and hes_lagrangian.cpp are examples and tests of Hessian. They return true, if they succeed and false otherwise.