x + y \cdot \frac{z - t}{z - a}\frac{y}{\left(z - a\right) \cdot \frac{1}{z - t}} + xdouble f(double x, double y, double z, double t, double a) {
double r675560 = x;
double r675561 = y;
double r675562 = z;
double r675563 = t;
double r675564 = r675562 - r675563;
double r675565 = a;
double r675566 = r675562 - r675565;
double r675567 = r675564 / r675566;
double r675568 = r675561 * r675567;
double r675569 = r675560 + r675568;
return r675569;
}
double f(double x, double y, double z, double t, double a) {
double r675570 = y;
double r675571 = z;
double r675572 = a;
double r675573 = r675571 - r675572;
double r675574 = 1.0;
double r675575 = t;
double r675576 = r675571 - r675575;
double r675577 = r675574 / r675576;
double r675578 = r675573 * r675577;
double r675579 = r675570 / r675578;
double r675580 = x;
double r675581 = r675579 + r675580;
return r675581;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 1.4 |
|---|---|
| Target | 1.3 |
| Herbie | 1.3 |
Initial program 1.4
rmApplied clear-num1.5
rmApplied pow11.5
Applied pow11.5
Applied pow-prod-down1.5
Simplified1.3
rmApplied div-inv1.3
Final simplification1.3
herbie shell --seed 2020001
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisLine from plot-0.2.3.4, A"
:precision binary64
:herbie-target
(+ x (/ y (/ (- z a) (- z t))))
(+ x (* y (/ (- z t) (- z a)))))