x + \frac{y \cdot \left(z - t\right)}{a - t}x + \frac{y}{\frac{a - t}{z - t}}(FPCore (x y z t a) :precision binary64 (+ x (/ (* y (- z t)) (- a t))))
(FPCore (x y z t a) :precision binary64 (+ x (/ y (/ (- a t) (- z t)))))
double code(double x, double y, double z, double t, double a) {
return x + ((y * (z - t)) / (a - t));
}
double code(double x, double y, double z, double t, double a) {
return x + (y / ((a - t) / (z - t)));
}
















Bits error versus x
















Bits error versus y
















Bits error versus z
















Bits error versus t
















Bits error versus a
Results
| Original | 10.8 |
|---|---|
| Target | 1.1 |
| Herbie | 1.1 |
| Alternative 1 | |
|---|---|
| Error | 2.6 |
| Cost | 2370 |
| Alternative 2 | |
|---|---|
| Error | 8.1 |
| Cost | 1218 |
| Alternative 3 | |
|---|---|
| Error | 8.0 |
| Cost | 1218 |
| Alternative 4 | |
|---|---|
| Error | 8.0 |
| Cost | 904 |
| Alternative 5 | |
|---|---|
| Error | 10.4 |
| Cost | 904 |
| Alternative 6 | |
|---|---|
| Error | 14.0 |
| Cost | 776 |
| Alternative 7 | |
|---|---|
| Error | 14.7 |
| Cost | 776 |
| Alternative 8 | |
|---|---|
| Error | 20.1 |
| Cost | 2118 |
| Alternative 9 | |
|---|---|
| Error | 19.5 |
| Cost | 520 |
| Alternative 10 | |
|---|---|
| Error | 28.5 |
| Cost | 64 |
| Alternative 11 | |
|---|---|
| Error | 61.8 |
| Cost | 64 |
| Alternative 12 | |
|---|---|
| Error | 61.8 |
| Cost | 64 |

Initial program 10.8
rmApplied associate-/l*_binary64_105941.1
Simplified1.1
Final simplification1.1
herbie shell --seed 2021044
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTicks from plot-0.2.3.4, B"
:precision binary64
:herbie-target
(+ x (/ y (/ (- a t) (- z t))))
(+ x (/ (* y (- z t)) (- a t))))