x + \frac{y}{1.12837916709551256 \cdot e^{z} - x \cdot y}\frac{1}{1.12837916709551256 \cdot \frac{e^{z}}{y} - x} + xdouble f(double x, double y, double z) {
double r532421 = x;
double r532422 = y;
double r532423 = 1.1283791670955126;
double r532424 = z;
double r532425 = exp(r532424);
double r532426 = r532423 * r532425;
double r532427 = r532421 * r532422;
double r532428 = r532426 - r532427;
double r532429 = r532422 / r532428;
double r532430 = r532421 + r532429;
return r532430;
}
double f(double x, double y, double z) {
double r532431 = 1.0;
double r532432 = 1.1283791670955126;
double r532433 = z;
double r532434 = exp(r532433);
double r532435 = y;
double r532436 = r532434 / r532435;
double r532437 = r532432 * r532436;
double r532438 = x;
double r532439 = r532437 - r532438;
double r532440 = r532431 / r532439;
double r532441 = r532440 + r532438;
return r532441;
}




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
rmApplied *-un-lft-identity2.8
Applied *-un-lft-identity2.8
Applied times-frac2.8
Simplified2.8
Simplified0.0
Final simplification0.0
herbie shell --seed 2020047
(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)))))