Hacker News new | ask | show | jobs
by specialist 2167 days ago
Nicely done.

FWIW, I dimly recall a numeric library, maybe a float to string, which tested everything for verification. Took a few days to run.

Then maybe use the spot checks to test for regressions. Weird compiler, toolchain, processor combos. That sort of thing.

1 comments

> FWIW, I dimly recall a numeric library, maybe a float to string, which tested everything for verification. Took a few days to run.

You can definitely test against all ~2^31 IEEE 754 binary32 values to make sure that float-to-decimal conversion is correct; that's what I've done with the Rust standard library (took 2 hours per test). I believe testing all ~2^63 binary64 values are also feasible by now, but only with dedicated hardwares. For that reason I believe the library had only tested with binary32.

What kind of hardware can crank through the 2^64 space in reasonable time?
It’s actually surprisingly feasible. 1,000 cores running at 3GHz for a week do ~2^64 cycles.
Don't you mean 10,000 cores?
Whoops, yes! Too late to edit.