x + \frac{y}{1.128379167095512558560699289955664426088 \cdot e^{z} - x \cdot y}x + \frac{1}{\frac{e^{z}}{y} \cdot 1.128379167095512558560699289955664426088 + \left(-x\right)}double f(double x, double y, double z) {
double r276185 = x;
double r276186 = y;
double r276187 = 1.1283791670955126;
double r276188 = z;
double r276189 = exp(r276188);
double r276190 = r276187 * r276189;
double r276191 = r276185 * r276186;
double r276192 = r276190 - r276191;
double r276193 = r276186 / r276192;
double r276194 = r276185 + r276193;
return r276194;
}
double f(double x, double y, double z) {
double r276195 = x;
double r276196 = 1.0;
double r276197 = z;
double r276198 = exp(r276197);
double r276199 = y;
double r276200 = r276198 / r276199;
double r276201 = 1.1283791670955126;
double r276202 = r276200 * r276201;
double r276203 = -r276195;
double r276204 = r276202 + r276203;
double r276205 = r276196 / r276204;
double r276206 = r276195 + r276205;
return r276206;
}




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.0
rmApplied fma-udef0.0
Simplified0.1
Final simplification0.1
herbie shell --seed 2019347 +o rules:numerics
(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)))))