x + \frac{\left(y - x\right) \cdot z}{t}\begin{array}{l}
\mathbf{if}\;x + \frac{\left(y - x\right) \cdot z}{t} = -\infty:\\
\;\;\;\;x + \frac{z}{\frac{t}{y - x}}\\
\mathbf{elif}\;x + \frac{\left(y - x\right) \cdot z}{t} \le 2.4829011027507563 \cdot 10^{+286}:\\
\;\;\;\;x + \frac{\left(y - x\right) \cdot z}{t}\\
\mathbf{else}:\\
\;\;\;\;x + \frac{z}{\frac{t}{y - x}}\\
\end{array}double f(double x, double y, double z, double t) {
double r37968988 = x;
double r37968989 = y;
double r37968990 = r37968989 - r37968988;
double r37968991 = z;
double r37968992 = r37968990 * r37968991;
double r37968993 = t;
double r37968994 = r37968992 / r37968993;
double r37968995 = r37968988 + r37968994;
return r37968995;
}
double f(double x, double y, double z, double t) {
double r37968996 = x;
double r37968997 = y;
double r37968998 = r37968997 - r37968996;
double r37968999 = z;
double r37969000 = r37968998 * r37968999;
double r37969001 = t;
double r37969002 = r37969000 / r37969001;
double r37969003 = r37968996 + r37969002;
double r37969004 = -inf.0;
bool r37969005 = r37969003 <= r37969004;
double r37969006 = r37969001 / r37968998;
double r37969007 = r37968999 / r37969006;
double r37969008 = r37968996 + r37969007;
double r37969009 = 2.4829011027507563e+286;
bool r37969010 = r37969003 <= r37969009;
double r37969011 = r37969010 ? r37969003 : r37969008;
double r37969012 = r37969005 ? r37969008 : r37969011;
return r37969012;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 6.2 |
|---|---|
| Target | 2.0 |
| Herbie | 1.1 |
if (+ x (/ (* (- y x) z) t)) < -inf.0 or 2.4829011027507563e+286 < (+ x (/ (* (- y x) z) t)) Initial program 49.9
rmApplied *-commutative49.9
Applied associate-/l*3.4
if -inf.0 < (+ x (/ (* (- y x) z) t)) < 2.4829011027507563e+286Initial program 0.8
Final simplification1.1
herbie shell --seed 2019158
(FPCore (x y z t)
:name "Numeric.Histogram:binBounds from Chart-1.5.3"
:herbie-target
(if (< x -9.025511195533005e-135) (- x (* (/ z t) (- x y))) (if (< x 4.275032163700715e-250) (+ x (* (/ (- y x) t) z)) (+ x (/ (- y x) (/ t z)))))
(+ x (/ (* (- y x) z) t)))