x + y \cdot \frac{z - t}{a - t}x + y \cdot \frac{z - t}{a - t}double f(double x, double y, double z, double t, double a) {
double r472463 = x;
double r472464 = y;
double r472465 = z;
double r472466 = t;
double r472467 = r472465 - r472466;
double r472468 = a;
double r472469 = r472468 - r472466;
double r472470 = r472467 / r472469;
double r472471 = r472464 * r472470;
double r472472 = r472463 + r472471;
return r472472;
}
double f(double x, double y, double z, double t, double a) {
double r472473 = x;
double r472474 = y;
double r472475 = z;
double r472476 = t;
double r472477 = r472475 - r472476;
double r472478 = a;
double r472479 = r472478 - r472476;
double r472480 = r472477 / r472479;
double r472481 = r472474 * r472480;
double r472482 = r472473 + r472481;
return r472482;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 1.3 |
|---|---|
| Target | 0.3 |
| Herbie | 1.3 |
Initial program 1.3
Final simplification1.3
herbie shell --seed 2020046
(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.508084860551241e-17) (+ x (* y (/ (- z t) (- a t)))) (if (< y 2.894426862792089e-49) (+ x (* (* y (- z t)) (/ 1 (- a t)))) (+ x (* y (/ (- z t) (- a t))))))
(+ x (* y (/ (- z t) (- a t)))))