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 r268558 = x;
double r268559 = y;
double r268560 = 1.1283791670955126;
double r268561 = z;
double r268562 = exp(r268561);
double r268563 = r268560 * r268562;
double r268564 = r268558 * r268559;
double r268565 = r268563 - r268564;
double r268566 = r268559 / r268565;
double r268567 = r268558 + r268566;
return r268567;
}
double f(double x, double y, double z) {
double r268568 = x;
double r268569 = 1.0;
double r268570 = 1.1283791670955126;
double r268571 = z;
double r268572 = exp(r268571);
double r268573 = y;
double r268574 = r268572 / r268573;
double r268575 = r268570 * r268574;
double r268576 = r268575 - r268568;
double r268577 = r268569 / r268576;
double r268578 = r268568 + r268577;
return r268578;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 3.0 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 3.0
rmApplied clear-num3.0
Simplified0.1
Final simplification0.1
herbie shell --seed 2019322
(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)))))