x + y \cdot \frac{z - t}{z - a}x + y \cdot \left(\frac{z}{z - a} - \frac{t}{z - a}\right)double f(double x, double y, double z, double t, double a) {
double r733266 = x;
double r733267 = y;
double r733268 = z;
double r733269 = t;
double r733270 = r733268 - r733269;
double r733271 = a;
double r733272 = r733268 - r733271;
double r733273 = r733270 / r733272;
double r733274 = r733267 * r733273;
double r733275 = r733266 + r733274;
return r733275;
}
double f(double x, double y, double z, double t, double a) {
double r733276 = x;
double r733277 = y;
double r733278 = z;
double r733279 = a;
double r733280 = r733278 - r733279;
double r733281 = r733278 / r733280;
double r733282 = t;
double r733283 = r733282 / r733280;
double r733284 = r733281 - r733283;
double r733285 = r733277 * r733284;
double r733286 = r733276 + r733285;
return r733286;
}




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.4 |
Initial program 1.4
rmApplied div-sub1.4
Final simplification1.4
herbie shell --seed 2019353
(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)))))