x + \frac{y}{1.1283791670955126 \cdot e^{z} - x \cdot y}\begin{array}{l}
\mathbf{if}\;x + \frac{y}{e^{z} \cdot 1.1283791670955126 - x \cdot y} \le 5.241345650251777 \cdot 10^{+241}:\\
\;\;\;\;x + \frac{y}{e^{z} \cdot 1.1283791670955126 - x \cdot y}\\
\mathbf{else}:\\
\;\;\;\;x - \frac{1}{x}\\
\end{array}double f(double x, double y, double z) {
double r18531177 = x;
double r18531178 = y;
double r18531179 = 1.1283791670955126;
double r18531180 = z;
double r18531181 = exp(r18531180);
double r18531182 = r18531179 * r18531181;
double r18531183 = r18531177 * r18531178;
double r18531184 = r18531182 - r18531183;
double r18531185 = r18531178 / r18531184;
double r18531186 = r18531177 + r18531185;
return r18531186;
}
double f(double x, double y, double z) {
double r18531187 = x;
double r18531188 = y;
double r18531189 = z;
double r18531190 = exp(r18531189);
double r18531191 = 1.1283791670955126;
double r18531192 = r18531190 * r18531191;
double r18531193 = r18531187 * r18531188;
double r18531194 = r18531192 - r18531193;
double r18531195 = r18531188 / r18531194;
double r18531196 = r18531187 + r18531195;
double r18531197 = 5.241345650251777e+241;
bool r18531198 = r18531196 <= r18531197;
double r18531199 = 1.0;
double r18531200 = r18531199 / r18531187;
double r18531201 = r18531187 - r18531200;
double r18531202 = r18531198 ? r18531196 : r18531201;
return r18531202;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 2.8 |
|---|---|
| Target | 0.0 |
| Herbie | 1.1 |
if (+ x (/ y (- (* 1.1283791670955126 (exp z)) (* x y)))) < 5.241345650251777e+241Initial program 1.1
rmApplied div-inv1.3
rmApplied un-div-inv1.1
if 5.241345650251777e+241 < (+ x (/ y (- (* 1.1283791670955126 (exp z)) (* x y)))) Initial program 19.3
Taylor expanded around inf 0.8
Final simplification1.1
herbie shell --seed 2019163 +o rules:numerics
(FPCore (x y z)
:name "Numeric.SpecFunctions:invErfc from math-functions-0.1.5.2, A"
:herbie-target
(+ x (/ 1 (- (* (/ 1.1283791670955126 y) (exp z)) x)))
(+ x (/ y (- (* 1.1283791670955126 (exp z)) (* x y)))))