cpp_fun_hessian#

View page source

Hessian of an AD Function#

Syntax#

H = f.hessian ( x , w )

f#

This is either a d_fun or a_fun function object. Upon return, the zero order taylor_coefficients in f correspond to the value of x . The other Taylor coefficients in f are unspecified.

f(x)#

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

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#

If f is a d_fun or a_fun , this argument has prototype

      const vec_double& x
      const vec_a_double& x

and its size must be n . It specifies the argument value at we are computing the Hessian \(g^{(2)}(x)\).

w#

If f is a d_fun or a_fun , this argument has prototype

      const vec_double& w
      const vec_a_double& w

and its size must be m . It specifies the vector w in the definition of \(g(x)\) above.

H#

If f is a d_fun or a_fun , the result has prototype

      vec_double H
      vec_a_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#

fun_hessian_xam.cpp