In practice, a numerical procedure solves the TDME by making use of an approximation $\tilde U(t)$ to the true time evolution $U(t)$ (see below). A necessary and sufficient condition for an algorithm to be unconditionally stable is that [@Smith85] $$\|\tilde{U}(t)\Psi(0)\|\leq \|\Psi(0)\|.
\label{UNCOND}$$ In other words, the length of $\Psi(t)$ should be bounded, for arbitrary initial condition $\Psi(t=0)$ and for any time $t$ [@Smith85]. By chosing for $\Psi(0)$ the eigenvector of $\tilde U(t)$ that corresponds to the largest eigenvalue of $\tilde U(t)$, it follows from Eq. (\[UNCOND\]) that the algorithm will be unconditionally stable by construction if and only if the largest eigenvalue of $\tilde U(t)$ (denoted by $\|\tilde U(t)\|$) is less or equal than one [@Smith85]. If the approximation $\tilde U(t)$ is itself an orthogonal transformation, then $\|\tilde U(t)\|=1$ and the numerical scheme will be unconditionally stable.

Summarizing: Unconditionally stable algorithms to solve Eq. (\[eqn:mtxeqn\]) can be constructed by employing orthogonal approximations to the time-evolution $U(t)=e^{t{\mathcal H}}$. For the case at hand, unconditional stability is tantamount to the exact conservation of the energy density.

Unconditionally Stable Algorithms {#sec3}
=================================

A numerical procedure that solves the TDME necessarily starts by discretizing the spatial derivatives (see Sec.\[sec4\]). This maps the continuum problem 