Computations in purely numerical systems often fail because their
number representation is insufficient for the task--for example when
IEEE floating-point overflow or underflow occurs, or when complex numbers
appear in a floating-point computation.
With dynamic type switching (DTS), Mathematica detects these
problems and switches number systems without user
interaction. Mathematica can therefore often return accurate
results in situations where non-Mathematica, numerical-only systems fail.
An example of DTS is found when using the numerical differential
equation solver NDSolve. An
initially real solution might become complex during the calculation,
automatically triggering Mathematica's just-in-time (JIT)
compiler to recompile optimized byte code.
The solution to this
differential equation became complex
at t=1. Without Mathematica, a user would have to
anticipate this before solving the problem.