# Computing the elements of a Hessian matrix with finite difference

I have a generic function $g(x)$ where $x$ is an 6-dimensional vector. Now I want to compute the Hessian of this function for a point $x_0$. What is the most efficient way to do this? Can I do this with finite differences and which formulas do I need?

The diagonal entries are no problem when following the formulas from http://en.wikipedia.org/wiki/Finite_difference, but how the compute the off-diagonal entries?

-