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 r330764 = x;
double r330765 = y;
double r330766 = 1.1283791670955126;
double r330767 = z;
double r330768 = exp(r330767);
double r330769 = r330766 * r330768;
double r330770 = r330764 * r330765;
double r330771 = r330769 - r330770;
double r330772 = r330765 / r330771;
double r330773 = r330764 + r330772;
return r330773;
}
double f(double x, double y, double z) {
double r330774 = x;
double r330775 = 1.0;
double r330776 = 1.1283791670955126;
double r330777 = z;
double r330778 = exp(r330777);
double r330779 = y;
double r330780 = r330778 / r330779;
double r330781 = r330776 * r330780;
double r330782 = r330781 - r330774;
double r330783 = r330775 / r330782;
double r330784 = r330774 + r330783;
return r330784;
}




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)))))