| ▲ | Herbie: Automatically improve imprecise floating point formulas(herbie.uwplse.org) | ||||||||||||||||||||||
| 55 points by summarity 4 days ago | 8 comments | |||||||||||||||||||||||
| ▲ | reikonomusha 31 minutes ago | parent | next [-] | ||||||||||||||||||||||
This is an awesome piece of software, one of my favorite little pieces of magic. Finding more precise or more stable floating point formulas is often arduous and requires a lot of familiarity with the behavior of floats. This finds good formulas completely automatically. Super useful for numerical computation. | |||||||||||||||||||||||
| ▲ | bee_rider 2 hours ago | parent | prev | next [-] | ||||||||||||||||||||||
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? | |||||||||||||||||||||||
| ▲ | fluorinerocket 3 hours ago | parent | prev | next [-] | ||||||||||||||||||||||
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. | |||||||||||||||||||||||
| |||||||||||||||||||||||
| ▲ | lutusp 2 hours ago | parent | prev [-] | ||||||||||||||||||||||
> 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? | |||||||||||||||||||||||
| |||||||||||||||||||||||