x + \frac{y \cdot \left(z - t\right)}{z - a}y \cdot \frac{z - t}{z - a} + xdouble f(double x, double y, double z, double t, double a) {
double r468418 = x;
double r468419 = y;
double r468420 = z;
double r468421 = t;
double r468422 = r468420 - r468421;
double r468423 = r468419 * r468422;
double r468424 = a;
double r468425 = r468420 - r468424;
double r468426 = r468423 / r468425;
double r468427 = r468418 + r468426;
return r468427;
}
double f(double x, double y, double z, double t, double a) {
double r468428 = y;
double r468429 = z;
double r468430 = t;
double r468431 = r468429 - r468430;
double r468432 = a;
double r468433 = r468429 - r468432;
double r468434 = r468431 / r468433;
double r468435 = r468428 * r468434;
double r468436 = x;
double r468437 = r468435 + r468436;
return r468437;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 11.0 |
|---|---|
| Target | 1.2 |
| Herbie | 1.4 |
Initial program 11.0
Simplified2.9
rmApplied fma-udef2.9
rmApplied div-inv3.0
Applied associate-*l*1.4
Simplified1.4
Final simplification1.4
herbie shell --seed 2019351 +o rules:numerics
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTicks from plot-0.2.3.4, A"
:precision binary64
:herbie-target
(+ x (/ y (/ (- z a) (- z t))))
(+ x (/ (* y (- z t)) (- z a))))