``It is in vaine to goe about to make the shadowe straite, if the bodie
whiche giveth the shadowe bee crooked.''
-- Stefano Guazzo, Civile Conversation. (1574)
Shadowing is a branch of chaotic systems theory that tries to show that, even in the face of the exponential magnification of small errors, numerical solutions have some validity. It does this by trying to show that, for any particular computed solution (the ``noisy'' solution), there exists a true solution with slightly different initial conditions that stays uniformly close to the computed solution. If such a solution exists, it is called a true shadow of the computed solution. An approximation to true shadowing is numerical shadowing, whereby an iterative refinement algorithm is applied to a noisy solution to produce a nearby solution with less noise. If this iterative process converges to a solution with noise close to the machine precision, the resulting solution is called a numerical shadow. Numerical shadowing is very compute intensive, because it requires the storage and manipulation of the full phase-space trajectory of the system, at much higher precision than the original computation.