x + \frac{\left(y - x\right) \cdot z}{t}\begin{array}{l}
\mathbf{if}\;x + \frac{\left(y - x\right) \cdot z}{t} \le 5.7276462089243311 \cdot 10^{203}:\\
\;\;\;\;x + \left(y - x\right) \cdot \frac{z}{t}\\
\mathbf{else}:\\
\;\;\;\;x + \frac{y - x}{t} \cdot z\\
\end{array}double f(double x, double y, double z, double t) {
double r448126 = x;
double r448127 = y;
double r448128 = r448127 - r448126;
double r448129 = z;
double r448130 = r448128 * r448129;
double r448131 = t;
double r448132 = r448130 / r448131;
double r448133 = r448126 + r448132;
return r448133;
}
double f(double x, double y, double z, double t) {
double r448134 = x;
double r448135 = y;
double r448136 = r448135 - r448134;
double r448137 = z;
double r448138 = r448136 * r448137;
double r448139 = t;
double r448140 = r448138 / r448139;
double r448141 = r448134 + r448140;
double r448142 = 5.727646208924331e+203;
bool r448143 = r448141 <= r448142;
double r448144 = r448137 / r448139;
double r448145 = r448136 * r448144;
double r448146 = r448134 + r448145;
double r448147 = r448136 / r448139;
double r448148 = r448147 * r448137;
double r448149 = r448134 + r448148;
double r448150 = r448143 ? r448146 : r448149;
return r448150;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 6.8 |
|---|---|
| Target | 2.1 |
| Herbie | 3.2 |
if (+ x (/ (* (- y x) z) t)) < 5.727646208924331e+203Initial program 4.7
rmApplied *-un-lft-identity4.7
Applied times-frac1.7
Simplified1.7
if 5.727646208924331e+203 < (+ x (/ (* (- y x) z) t)) Initial program 19.2
rmApplied associate-/l*3.3
rmApplied associate-/r/12.2
Final simplification3.2
herbie shell --seed 2020034
(FPCore (x y z t)
:name "Numeric.Histogram:binBounds from Chart-1.5.3"
:precision binary64
: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)))