x + \left(y - x\right) \cdot \frac{z}{t}\frac{z}{\frac{t}{y - x}} - \left(-x\right)double f(double x, double y, double z, double t) {
double r472270 = x;
double r472271 = y;
double r472272 = r472271 - r472270;
double r472273 = z;
double r472274 = t;
double r472275 = r472273 / r472274;
double r472276 = r472272 * r472275;
double r472277 = r472270 + r472276;
return r472277;
}
double f(double x, double y, double z, double t) {
double r472278 = z;
double r472279 = t;
double r472280 = y;
double r472281 = x;
double r472282 = r472280 - r472281;
double r472283 = r472279 / r472282;
double r472284 = r472278 / r472283;
double r472285 = -r472281;
double r472286 = r472284 - r472285;
return r472286;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.9 |
|---|---|
| Target | 2.0 |
| Herbie | 6.0 |
Initial program 1.9
rmApplied add-cube-cbrt2.4
Applied add-cube-cbrt2.6
Applied times-frac2.6
Applied associate-*r*0.9
rmApplied add-sqr-sqrt0.9
Applied associate-*r*0.9
Simplified0.9
Final simplification6.0
herbie shell --seed 2019297
(FPCore (x y z t)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:tickPosition from plot-0.2.3.4"
:precision binary64
:herbie-target
(if (< (* (- y x) (/ z t)) -1013646692435.887) (+ 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))))