## Hessian Calculator

Let $f(x_1,x_2,\ldots,x_n)$ be a twice differentiable, real-valued function and given $n$ real numbers $a_1,a_2,\ldots,a_n$, this application calculates at $x_i=a_i$, where $i=1,2,\ldots,n$, the value of function $f$ and the $n\times n$ Hessian matrix: \[ \begin{bmatrix} \frac{\partial^2 f}{\partial x_1^2} & \frac{\partial^2 f}{\partial x_1\partial x_2} & \dots & \frac{\partial^2 f}{\partial x_1\partial x_n} \\ \frac{\partial^2 f}{\partial x_2\partial x_1} & \frac{\partial^2 f}{\partial x_2^2} & \dots & \frac{\partial^2 f}{\partial x_2\partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^2 f}{\partial x_n\partial x_1} & \frac{\partial^2 f}{\partial x_n\partial x_2} & \dots & \frac{\partial^2 f}{\partial x_n^2} \\ \end{bmatrix} \] In calculating the mixed derivatives of $f$, e.g. $\frac{\partial^2 f}{\partial x_i\partial x_j}$, this calculator assumes that they are continuous and the order of differentiation does not matter, i.e. \[ \frac{\partial}{\partial x_i}\left(\frac{\partial f}{\partial x_j}\right)= \frac{\partial}{\partial x_j}\left(\frac{\partial f}{\partial x_i}\right) \] So only the diagonal entries and the upper triangular entries are calculated using automatic differentiation (AD). Due to its symmetry, the lower triangular part of the Hessian is just the transpose of the upper triangular part.

### Input Data

Hessian calculator uses the same inputs as Gradient Calculator.