lines 6-76 of file: lib/python/cppad_py/fun_hessian.py # {xrst_begin py_fun_hessian} # {xrst_comment_ch #} # # Hessian of an AD Function # ######################### # # Syntax # ****** # *H* = *f*\ ``.hessian`` ( *x* , *w* ) # # f # * # This is either a # :ref:`d_fun` or # :ref:`a_fun` function object. # Upon return, the zero order # :ref:`taylor_coefficients` # in *f* correspond to the value of *x* . # The other Taylor coefficients in *f* are unspecified. # # f(x) # **** # We use the notation :math:`f: \B{R}^n \rightarrow \B{R}^m` # for the function corresponding to *f* . # Note that *n* is the size of :ref:`ax` # and *m* is the size of :ref:`ay` # in to the constructor for *f* . # # g(x) # **** # We use the notation :math:`g: \B{R}^n \rightarrow \B{R}` # for the function defined by # # .. math:: # # g(x) = \sum_{i=0}^{n-1} w_i f_i (x) # # x # * # If *f* is a ``d_fun`` or ``a_fun`` , # *x* is a numpy vector with ``float`` ( ``a_double`` ) elements # and size *n* . # It specifies the argument value at we are computing the Hessian # :math:`g^{(2)}(x)`. # # w # * # If *f* is a ``d_fun`` or ``a_fun`` , # *w* is a numpy vector with ``float`` ( ``a_double`` ) elements # and size *m* . # It specifies the vector *w* in the definition of :math:`g(x)` above. # # H # * # The result is a numpy matrix with ``float`` ( ``a_double`` ) elements, # *n* rows and ``n`` columns. # For *i* between zero and *n* -1 # and *j* between zero and *n* -1 , # # .. math:: # # H [ i, j ] = \frac{ \partial^2 g }{ \partial x_i \partial x_j } (x) # # {xrst_toc_hidden # example/python/core/fun_hessian_xam.py # } # Example # ******* # :ref:`fun_hessian_xam.py-name` # # {xrst_end py_fun_hessian}