x + \frac{y \cdot \left(z - t\right)}{z - a}x + \frac{y}{\frac{z - a}{z - t}}double f(double x, double y, double z, double t, double a) {
double r474607 = x;
double r474608 = y;
double r474609 = z;
double r474610 = t;
double r474611 = r474609 - r474610;
double r474612 = r474608 * r474611;
double r474613 = a;
double r474614 = r474609 - r474613;
double r474615 = r474612 / r474614;
double r474616 = r474607 + r474615;
return r474616;
}
double f(double x, double y, double z, double t, double a) {
double r474617 = x;
double r474618 = y;
double r474619 = z;
double r474620 = a;
double r474621 = r474619 - r474620;
double r474622 = t;
double r474623 = r474619 - r474622;
double r474624 = r474621 / r474623;
double r474625 = r474618 / r474624;
double r474626 = r474617 + r474625;
return r474626;
}




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 |
if z < -5.1181462442232664e-138 or 2.632670860847324e-173 < z Initial program 12.8
rmApplied associate-/l*0.6
if -5.1181462442232664e-138 < z < 2.632670860847324e-173Initial program 3.8
rmApplied associate-/l*3.5
rmApplied clear-num3.6
rmApplied *-un-lft-identity3.6
Applied div-inv3.6
Applied times-frac3.5
Applied associate-/r*3.5
Simplified3.5
Final simplification1.3
herbie shell --seed 2019308
(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))))