The class DoubleAD was created to extend the
current calculations of gradient to automatically include a calculation of the
hessian vector product with another vector v. This is used with the
Stochastic Meta Descent Optimization, but could be extended for use in any application
that requires an additional order of differentiation without explicitly creating the code.