We didn't have this definition of correctness until 1990 (due to Steele and White), and it wasn't until the past decade or so that we got a published algorithm (most recently, I think, Dragonbox, due to Jeon when he was still working on his PhD at UCSD), with mathematical proof[0], that satisfied all of the requirements of being complete, being unique, and being deterministic.
(Though, Steele-White expresses these slightly differently, as preserving information, having the shortest possible output, and rounding correctly. Completeness, uniqueness, and determinism seem to be equivalent and are easier to prove.)
--
0: Available at <https://fmt.dev/papers/Dragonbox.pdf>. It's pretty easy to understand either with a numerical analysis background or after having worked through volume 2 of Knuth's TAoCP.
We didn't have this definition of correctness until 1990 (due to Steele and White), and it wasn't until the past decade or so that we got a published algorithm (most recently, I think, Dragonbox, due to Jeon when he was still working on his PhD at UCSD), with mathematical proof[0], that satisfied all of the requirements of being complete, being unique, and being deterministic.
(Though, Steele-White expresses these slightly differently, as preserving information, having the shortest possible output, and rounding correctly. Completeness, uniqueness, and determinism seem to be equivalent and are easier to prove.)
--
0: Available at <https://fmt.dev/papers/Dragonbox.pdf>. It's pretty easy to understand either with a numerical analysis background or after having worked through volume 2 of Knuth's TAoCP.