x + \frac{y \cdot \left(z - t\right)}{z - a}x + y \cdot \frac{z - t}{z - a}double f(double x, double y, double z, double t, double a) {
double r382909 = x;
double r382910 = y;
double r382911 = z;
double r382912 = t;
double r382913 = r382911 - r382912;
double r382914 = r382910 * r382913;
double r382915 = a;
double r382916 = r382911 - r382915;
double r382917 = r382914 / r382916;
double r382918 = r382909 + r382917;
return r382918;
}
double f(double x, double y, double z, double t, double a) {
double r382919 = x;
double r382920 = y;
double r382921 = z;
double r382922 = t;
double r382923 = r382921 - r382922;
double r382924 = a;
double r382925 = r382921 - r382924;
double r382926 = r382923 / r382925;
double r382927 = r382920 * r382926;
double r382928 = r382919 + r382927;
return r382928;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 10.6 |
|---|---|
| Target | 1.2 |
| Herbie | 1.3 |
if y < -6.366002923159597e-72 or 1.0253879521988147e-19 < y Initial program 19.6
rmApplied *-un-lft-identity19.6
Applied times-frac0.6
Simplified0.6
if -6.366002923159597e-72 < y < 1.0253879521988147e-19Initial program 0.4
rmApplied div-inv0.4
Final simplification1.3
herbie shell --seed 2019291
(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))))