x + \left(y - x\right) \cdot \frac{z}{t}x + \left(y - x\right) \cdot \frac{z}{t}double f(double x, double y, double z, double t) {
double r13206978 = x;
double r13206979 = y;
double r13206980 = r13206979 - r13206978;
double r13206981 = z;
double r13206982 = t;
double r13206983 = r13206981 / r13206982;
double r13206984 = r13206980 * r13206983;
double r13206985 = r13206978 + r13206984;
return r13206985;
}
double f(double x, double y, double z, double t) {
double r13206986 = x;
double r13206987 = y;
double r13206988 = r13206987 - r13206986;
double r13206989 = z;
double r13206990 = t;
double r13206991 = r13206989 / r13206990;
double r13206992 = r13206988 * r13206991;
double r13206993 = r13206986 + r13206992;
return r13206993;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.8 |
|---|---|
| Target | 2.0 |
| Herbie | 1.8 |
Initial program 1.8
Final simplification1.8
herbie shell --seed 2019163 +o rules:numerics
(FPCore (x y z t)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:tickPosition from plot-0.2.3.4"
:herbie-target
(if (< (* (- y x) (/ z t)) -1013646692435.8867) (+ x (/ (- y x) (/ t z))) (if (< (* (- y x) (/ z t)) -0.0) (+ x (/ (* (- y x) z) t)) (+ x (/ (- y x) (/ t z)))))
(+ x (* (- y x) (/ z t))))