x + \frac{y}{1.12837916709551256 \cdot e^{z} - x \cdot y}x + \frac{1}{1 \cdot \left(\frac{1.12837916709551256 \cdot e^{z}}{y} - x\right)}double f(double x, double y, double z) {
double r475393 = x;
double r475394 = y;
double r475395 = 1.1283791670955126;
double r475396 = z;
double r475397 = exp(r475396);
double r475398 = r475395 * r475397;
double r475399 = r475393 * r475394;
double r475400 = r475398 - r475399;
double r475401 = r475394 / r475400;
double r475402 = r475393 + r475401;
return r475402;
}
double f(double x, double y, double z) {
double r475403 = x;
double r475404 = 1.0;
double r475405 = 1.1283791670955126;
double r475406 = z;
double r475407 = exp(r475406);
double r475408 = r475405 * r475407;
double r475409 = y;
double r475410 = r475408 / r475409;
double r475411 = r475410 - r475403;
double r475412 = r475404 * r475411;
double r475413 = r475404 / r475412;
double r475414 = r475403 + r475413;
return r475414;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 2.9 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 2.9
rmApplied clear-num2.9
rmApplied *-un-lft-identity2.9
Applied *-un-lft-identity2.9
Applied times-frac2.9
Simplified2.9
Simplified0.1
rmApplied associate-*r/0.0
Final simplification0.0
herbie shell --seed 2020020 +o rules:numerics
(FPCore (x y z)
:name "Numeric.SpecFunctions:invErfc from math-functions-0.1.5.2, A"
:precision binary64
:herbie-target
(+ x (/ 1 (- (* (/ 1.1283791670955126 y) (exp z)) x)))
(+ x (/ y (- (* 1.1283791670955126 (exp z)) (* x y)))))