@b0rk I think is something worth knowing about if you really need to manage calculation precision in floating point.
I learned about them for the first time reading about the SANE (Standard Apple Numeric Environment) in the Turbo Pascal for the Macintosh 1.0 manual… circa 1990!
@b0rk @juandesant Subnormals are very important! For example, fl(x - y) = 0 implies x = y (exactly!) if you have subnormals, and if y/2 < x < 2y then fl(x - y) = x - y (no rounding!).
But if you _don't_ have subnormals, you can't reason like this.
The diagram for subnormals is very simple: zoom in to the smallest and second-smallest exponent, and copy the same resolution between [2^emin, 2^{emin + 1}) into [0, 2^{emin}). Without subnormals, there's a huge gap between 0 and 2^{emin}!