x + y \cdot \frac{z - t}{a - t}x + y \cdot \frac{1}{\frac{a - t}{z - t}}double f(double x, double y, double z, double t, double a) {
double r425740 = x;
double r425741 = y;
double r425742 = z;
double r425743 = t;
double r425744 = r425742 - r425743;
double r425745 = a;
double r425746 = r425745 - r425743;
double r425747 = r425744 / r425746;
double r425748 = r425741 * r425747;
double r425749 = r425740 + r425748;
return r425749;
}
double f(double x, double y, double z, double t, double a) {
double r425750 = x;
double r425751 = y;
double r425752 = 1.0;
double r425753 = a;
double r425754 = t;
double r425755 = r425753 - r425754;
double r425756 = z;
double r425757 = r425756 - r425754;
double r425758 = r425755 / r425757;
double r425759 = r425752 / r425758;
double r425760 = r425751 * r425759;
double r425761 = r425750 + r425760;
return r425761;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 1.5 |
|---|---|
| Target | 0.5 |
| Herbie | 1.6 |
Initial program 1.5
rmApplied clear-num1.6
Final simplification1.6
herbie shell --seed 2019306
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisLine from plot-0.2.3.4, B"
:precision binary64
:herbie-target
(if (< y -8.50808486055124107e-17) (+ x (* y (/ (- z t) (- a t)))) (if (< y 2.8944268627920891e-49) (+ x (* (* y (- z t)) (/ 1 (- a t)))) (+ x (* y (/ (- z t) (- a t))))))
(+ x (* y (/ (- z t) (- a t)))))