x + \frac{y}{1.128379167095512558560699289955664426088 \cdot e^{z} - x \cdot y}x + \frac{1}{1.128379167095512558560699289955664426088 \cdot \frac{e^{z}}{y} - x}double f(double x, double y, double z) {
double r398530 = x;
double r398531 = y;
double r398532 = 1.1283791670955126;
double r398533 = z;
double r398534 = exp(r398533);
double r398535 = r398532 * r398534;
double r398536 = r398530 * r398531;
double r398537 = r398535 - r398536;
double r398538 = r398531 / r398537;
double r398539 = r398530 + r398538;
return r398539;
}
double f(double x, double y, double z) {
double r398540 = x;
double r398541 = 1.0;
double r398542 = 1.1283791670955126;
double r398543 = z;
double r398544 = exp(r398543);
double r398545 = y;
double r398546 = r398544 / r398545;
double r398547 = r398542 * r398546;
double r398548 = r398547 - r398540;
double r398549 = r398541 / r398548;
double r398550 = r398540 + r398549;
return r398550;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 2.7 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 2.7
rmApplied clear-num2.7
Simplified0.1
Final simplification0.1
herbie shell --seed 2019303
(FPCore (x y z)
:name "Numeric.SpecFunctions:invErfc from math-functions-0.1.5.2, A"
:precision binary64
:herbie-target
(+ x (/ 1 (- (* (/ 1.12837916709551256 y) (exp z)) x)))
(+ x (/ y (- (* 1.12837916709551256 (exp z)) (* x y)))))