\left(\left(x - \left(y + 0.5\right) \cdot \log y\right) + y\right) - z
\left(\left(x - \left(y + 0.5\right) \cdot \log y\right) + y\right) - z
double f(double x, double y, double z) {
double r444721 = x;
double r444722 = y;
double r444723 = 0.5;
double r444724 = r444722 + r444723;
double r444725 = log(r444722);
double r444726 = r444724 * r444725;
double r444727 = r444721 - r444726;
double r444728 = r444727 + r444722;
double r444729 = z;
double r444730 = r444728 - r444729;
return r444730;
}
double f(double x, double y, double z) {
double r444731 = x;
double r444732 = y;
double r444733 = 0.5;
double r444734 = r444732 + r444733;
double r444735 = log(r444732);
double r444736 = r444734 * r444735;
double r444737 = r444731 - r444736;
double r444738 = r444737 + r444732;
double r444739 = z;
double r444740 = r444738 - r444739;
return r444740;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 0.1 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 0.1
Final simplification0.1
herbie shell --seed 2020001
(FPCore (x y z)
:name "Numeric.SpecFunctions:stirlingError from math-functions-0.1.5.2"
:precision binary64
:herbie-target
(- (- (+ y x) z) (* (+ y 0.5) (log y)))
(- (+ (- x (* (+ y 0.5) (log y))) y) z))