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 r409434 = x;
double r409435 = y;
double r409436 = 1.1283791670955126;
double r409437 = z;
double r409438 = exp(r409437);
double r409439 = r409436 * r409438;
double r409440 = r409434 * r409435;
double r409441 = r409439 - r409440;
double r409442 = r409435 / r409441;
double r409443 = r409434 + r409442;
return r409443;
}
double f(double x, double y, double z) {
double r409444 = x;
double r409445 = 1.0;
double r409446 = 1.1283791670955126;
double r409447 = z;
double r409448 = exp(r409447);
double r409449 = y;
double r409450 = r409448 / r409449;
double r409451 = r409446 * r409450;
double r409452 = r409451 - r409444;
double r409453 = r409445 / r409452;
double r409454 = r409444 + r409453;
return r409454;
}




Bits error versus x




Bits error versus y




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