Prev Next

@(@\newcommand{\B}[1]{ {\bf #1} } \newcommand{\R}[1]{ {\rm #1} }@)@
Hessian of an AD Function

Syntax
H = af.hessian(xw)

af
This object has prototype
     a_fun 
af
Note that its state is changed by this operation. The zero order Taylor coefficients in af correspond to the value of x . The other Taylor coefficients in af are unspecified.

f(x)
We use the notation @(@ f: \B{R}^n \rightarrow \B{R}^m @)@ for the function corresponding to af . Note that n is the size of ax and m is the size of ay in to the constructor for af .

g(x)
We use the notation @(@ g: \B{R}^n \rightarrow \B{R} @)@ for the function defined by @[@ g(x) = \sum_{i=0}^{n-1} w_i f_i (x) @]@

x
This argument has prototype
     const vec_double& 
x
and its size must be n . It specifies the argument value at we are computing the Hessian @(@ g^{(2)}(x) @)@.

w
This argument has prototype
     const vec_double& 
w
and its size must be m . It specifies the vector w in the definition of @(@ g(x) @)@ above.

H
The result has prototype
     vec_double 
H
and its size is n*n . For i between zero and n-1 and j between zero and n-1 , @[@ H [ i * n + j ] = \frac{ \partial^2 g }{ \partial x_i \partial x_j } (x) @]@

Example
C++ , Octave , Perl , Python .
Input File: lib/a_fun.cpp