x + \frac{y}{1.128379167095512558560699289955664426088 \cdot e^{z} - x \cdot y}x + \frac{1}{\frac{1.128379167095512558560699289955664426088 \cdot e^{z}}{y} - x}double f(double x, double y, double z) {
double r379604 = x;
double r379605 = y;
double r379606 = 1.1283791670955126;
double r379607 = z;
double r379608 = exp(r379607);
double r379609 = r379606 * r379608;
double r379610 = r379604 * r379605;
double r379611 = r379609 - r379610;
double r379612 = r379605 / r379611;
double r379613 = r379604 + r379612;
return r379613;
}
double f(double x, double y, double z) {
double r379614 = x;
double r379615 = 1.0;
double r379616 = 1.1283791670955126;
double r379617 = z;
double r379618 = exp(r379617);
double r379619 = r379616 * r379618;
double r379620 = y;
double r379621 = r379619 / r379620;
double r379622 = r379621 - r379614;
double r379623 = r379615 / r379622;
double r379624 = r379614 + r379623;
return r379624;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 2.8 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 2.8
rmApplied clear-num2.8
Simplified0.1
rmApplied associate-*r/0.0
Final simplification0.0
herbie shell --seed 2019325
(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)))))