logoalt Hacker News

WalterBrighttoday at 12:16 AM1 replyview on HN

There was no test suite for it available that I could use for correctness checks, so I did what I could.

I also implemented IEEE 754 floating point in asm. For that I did have an exhaustive test suite, and passed it 100%.


Replies

nrrtoday at 1:33 AM

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.

show 1 reply