x + \frac{y}{1.12837916709551256 \cdot e^{z} - x \cdot y}x + \frac{1}{1.12837916709551256 \cdot \frac{e^{z}}{y} - \frac{x}{1}}double f(double x, double y, double z) {
double r430854 = x;
double r430855 = y;
double r430856 = 1.1283791670955126;
double r430857 = z;
double r430858 = exp(r430857);
double r430859 = r430856 * r430858;
double r430860 = r430854 * r430855;
double r430861 = r430859 - r430860;
double r430862 = r430855 / r430861;
double r430863 = r430854 + r430862;
return r430863;
}
double f(double x, double y, double z) {
double r430864 = x;
double r430865 = 1.0;
double r430866 = 1.1283791670955126;
double r430867 = z;
double r430868 = exp(r430867);
double r430869 = y;
double r430870 = r430868 / r430869;
double r430871 = r430866 * r430870;
double r430872 = r430864 / r430865;
double r430873 = r430871 - r430872;
double r430874 = r430865 / r430873;
double r430875 = r430864 + r430874;
return r430875;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 2.5 |
|---|---|
| Target | 0.0 |
| Herbie | 0.1 |
Initial program 2.5
rmApplied clear-num2.6
rmApplied div-sub2.6
Simplified2.6
Simplified0.1
Final simplification0.1
herbie shell --seed 2020060
(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)))))