x + \frac{y \cdot \left(z - t\right)}{z - a}\frac{y}{\frac{z}{z - t} - \frac{a}{z - t}} + xdouble f(double x, double y, double z, double t, double a) {
double r30187616 = x;
double r30187617 = y;
double r30187618 = z;
double r30187619 = t;
double r30187620 = r30187618 - r30187619;
double r30187621 = r30187617 * r30187620;
double r30187622 = a;
double r30187623 = r30187618 - r30187622;
double r30187624 = r30187621 / r30187623;
double r30187625 = r30187616 + r30187624;
return r30187625;
}
double f(double x, double y, double z, double t, double a) {
double r30187626 = y;
double r30187627 = z;
double r30187628 = t;
double r30187629 = r30187627 - r30187628;
double r30187630 = r30187627 / r30187629;
double r30187631 = a;
double r30187632 = r30187631 / r30187629;
double r30187633 = r30187630 - r30187632;
double r30187634 = r30187626 / r30187633;
double r30187635 = x;
double r30187636 = r30187634 + r30187635;
return r30187636;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 10.8 |
|---|---|
| Target | 1.3 |
| Herbie | 1.3 |
Initial program 10.8
rmApplied associate-/l*1.3
rmApplied div-sub1.3
Final simplification1.3
herbie shell --seed 2019200
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTicks from plot-0.2.3.4, A"
:herbie-target
(+ x (/ y (/ (- z a) (- z t))))
(+ x (/ (* y (- z t)) (- z a))))