x + \left(y - x\right) \cdot \frac{z}{t}x + \frac{y - x}{\frac{t}{z}}double f(double x, double y, double z, double t) {
double r433716 = x;
double r433717 = y;
double r433718 = r433717 - r433716;
double r433719 = z;
double r433720 = t;
double r433721 = r433719 / r433720;
double r433722 = r433718 * r433721;
double r433723 = r433716 + r433722;
return r433723;
}
double f(double x, double y, double z, double t) {
double r433724 = x;
double r433725 = y;
double r433726 = r433725 - r433724;
double r433727 = t;
double r433728 = z;
double r433729 = r433727 / r433728;
double r433730 = r433726 / r433729;
double r433731 = r433724 + r433730;
return r433731;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.9 |
|---|---|
| Target | 2.1 |
| Herbie | 1.9 |
if t < -3.542613364473471e-276Initial program 1.8
rmApplied associate-*r/6.7
rmApplied associate-/l*1.8
rmApplied clear-num1.8
if -3.542613364473471e-276 < t < 4.428168098827568e+65Initial program 3.0
rmApplied associate-*r/2.2
if 4.428168098827568e+65 < t Initial program 1.2
rmApplied associate-*r/10.9
rmApplied associate-/l*1.4
Final simplification1.9
herbie shell --seed 2019308
(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))))