Hessian: Easy Driver
Keywords: hessian: easy driver second derivative syntax purpose f x l w hes vector hessian uses forward example

| Prev | Next |  |  |  |  |  |  |

Hessian: Easy Driver
Syntax
`hes = f.Hessian(x, w)
` `hes = f.Hessian(x, l)
`
Purpose
We use F : B n → 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 = d 2 d x 2 ∑ 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 = { 1 i = l 0 otherwise
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 , … , n - 1 and ℓ = 0 , … , n - 1 hes [ j * n + ℓ ] = ∂ 2 w T F ∂ x j ∂ x ℓ ( 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.

Input File: cppad/local/hessian.hpp