x + \frac{\left(y - x\right) \cdot z}{t}x + \frac{\left(y - x\right) \cdot z}{t}double f(double x, double y, double z, double t) {
double r384379 = x;
double r384380 = y;
double r384381 = r384380 - r384379;
double r384382 = z;
double r384383 = r384381 * r384382;
double r384384 = t;
double r384385 = r384383 / r384384;
double r384386 = r384379 + r384385;
return r384386;
}
double f(double x, double y, double z, double t) {
double r384387 = x;
double r384388 = y;
double r384389 = r384388 - r384387;
double r384390 = z;
double r384391 = r384389 * r384390;
double r384392 = t;
double r384393 = r384391 / r384392;
double r384394 = r384387 + r384393;
return r384394;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 6.4 |
|---|---|
| Target | 2.1 |
| Herbie | 6.4 |
if (+ x (/ (* (- y x) z) t)) < -1.931901752184042e+284 or 1.2079056784186795e+284 < (+ x (/ (* (- y x) z) t)) Initial program 42.8
rmApplied associate-/l*1.7
rmApplied clear-num1.8
if -1.931901752184042e+284 < (+ x (/ (* (- y x) z) t)) < 1.2079056784186795e+284Initial program 0.8
Final simplification6.4
herbie shell --seed 2019291
(FPCore (x y z t)
:name "Numeric.Histogram:binBounds from Chart-1.5.3"
:precision binary64
:herbie-target
(if (< x -9.0255111955330046e-135) (- x (* (/ z t) (- x y))) (if (< x 4.2750321637007147e-250) (+ x (* (/ (- y x) t) z)) (+ x (/ (- y x) (/ t z)))))
(+ x (/ (* (- y x) z) t)))