How useful is this when you are using numbers in a reasonable range, like 10^-12 to 10^12? Generally I try to scale my numbers to be in this range, whether by picking the right units or scaling constraints and objectives when doing nonlinear programming/ optimization.
Like looking at this example,
https://herbie.uwplse.org/demo/b070b371a661191752fe37ce0321c...
It is claimed that for the function f(x) =sqrt(x+1) -1
Accuracy is increased by from 8.5% accuracy to 98% for alternative 5 Which has f(x) = 0.5x
Ok so x=99, the right answer is sqrt(100) -1 = 9
But 0.5 * 99 = 49.5 which doesn't seem too accurate to me.
> Herbie: Automatically improve imprecise floating point formulas
Some responses seem obvious:
* A useful exposition would describe what problems are being addressed and how an improvement is achieved, rather than offering examples without analysis.
* Robust, meaningful accuracy improvements should be made part of the underlying language, not attached to each application program in the form of a special-purpose library.
* If the issue is that people write bad floating-point expressions, a code-writing tutorial would be a better solution.
* If a programmer thinks a special-purpose library is a meaningful alternative to understanding floating-point code issues, then what stops Herbie from being a source of additional errors?
I wonder, is there a way to only request reformulations that don’t involve branches? The tool already seems quite nice, but that might be a good feature.
Also, I’m not sure I understand the speedup. Is it latency or throughput?