In reply to ablackett:
Not a physical situation/simulation, but an example of a function that, by using trig identities, you can better accuracy in a certain range. Apologies if this isn't quite what you were looking for and I'm teaching you to suck eggs.
Suppose you have f(x) = cos(x) - 1.
In any floating-point representation there is a maximum value of x, below which the true value of cos(x) rounds to 1 in that representation. If you look at the source code for GLIBC double-precision cos (https://github.com/lattera/glibc/blob/master/sysdeps/ieee754/dbl-64/s_sin.c), you can see that below 2^-27 they just return 1.
So for the entire tiny region, because cos(x) rounds to 1, f(x) will be 0. However for a lot of that region f(x) would actually have been representable to much greater precision than that.
By trig identities you also have f(x) = -2 * (sin(x / 2))^2 (I think?).
At tiny input, sin(x) ~= x, meaning you lose less precision with sin than cos (fp-density of input is similar to that of output). So evaluating f(x) by the second option will be nonzero down to a much smaller input.
Not a very sexy example, but hope it helps!
Post edited at 10:48