x + \left(y - x\right) \cdot \frac{z}{t}\frac{y - x}{\frac{t}{z}} + xdouble f(double x, double y, double z, double t) {
double r377056 = x;
double r377057 = y;
double r377058 = r377057 - r377056;
double r377059 = z;
double r377060 = t;
double r377061 = r377059 / r377060;
double r377062 = r377058 * r377061;
double r377063 = r377056 + r377062;
return r377063;
}
double f(double x, double y, double z, double t) {
double r377064 = y;
double r377065 = x;
double r377066 = r377064 - r377065;
double r377067 = t;
double r377068 = z;
double r377069 = r377067 / r377068;
double r377070 = r377066 / r377069;
double r377071 = r377070 + r377065;
return r377071;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 2.0 |
|---|---|
| Target | 2.3 |
| Herbie | 2.0 |
Initial program 2.0
Simplified2.0
rmApplied fma-udef2.0
Simplified2.0
Final simplification2.0
herbie shell --seed 2019199 +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))))