Is it abuse of notation to write the hessian as $D^2f$? The hessian matrix of a function $f:\mathbb R^n \to \mathbb R$ is often written as $D^2f=D(Df)$. However, as far as I know, $D$ is an operator that takes a function, and returns a matrix of functions (see here). Therefore, if the inner $D$ in $D(Df)$ maps the function $f$ to a matrix of functions, the outer $D$ can not take that result as an argument, since it is not a function.
So is $D^2f$ for the hessian matrix an abuse of notation? Or am I missing something? (I'd like to see how this is correct from an exact definition of $D$, but I can't find one). 
 A: Let $L(V,W)$ denote the vector space of linear maps from (vector space) $V$ to (vector space) $W$. Note that $Df\colon\Bbb R^n\to L(\Bbb R^n,\Bbb R)$ is likewise a function (which assigns to $x$ the linear map $Df(x)$), and you're differentiating this. Thus, $D(Df)(x)$ is a linear map from $\Bbb R^n$ to $L(\Bbb R^n,\Bbb R)$, which is, in turn, a bilinear map from $\Bbb R^n\times\Bbb R^n$ to $\Bbb R$. This is what the usual hessian matrix representation is.
A: Alternatively, you may regard $D$ as a tensorial product. That is,
$$
Df=\nabla\otimes f,
$$
and
$$
D^2f=D\left(Df\right)=\nabla\otimes\left(\nabla\otimes f\right)=\left(\nabla\otimes\nabla\right)\otimes f.
$$
In the coordinate representation, the above expressions read
\begin{align}
\left(Df\right)_{\mu\nu}&=\partial_{\mu}f_{\nu},\\
\left(D^2f\right)_{\mu\nu\sigma}&=\partial_{\mu}\partial_{\nu}f_{\sigma},
\end{align}
where $\left(Df\right)_{\mu\nu}$ means the $\left(\mu,\nu\right)$-th entry of the matrix $Df$, while $\left(D^2f\right)_{\mu\nu\sigma}$ stands for the $\left(\mu,\nu,\sigma\right)$-th entry of the tensor $D^2f$.
