\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 r344724 = x;
double r344725 = y;
double r344726 = 0.5;
double r344727 = r344725 + r344726;
double r344728 = log(r344725);
double r344729 = r344727 * r344728;
double r344730 = r344724 - r344729;
double r344731 = r344730 + r344725;
double r344732 = z;
double r344733 = r344731 - r344732;
return r344733;
}
double f(double x, double y, double z) {
double r344734 = x;
double r344735 = y;
double r344736 = 0.5;
double r344737 = r344735 + r344736;
double r344738 = log(r344735);
double r344739 = r344737 * r344738;
double r344740 = r344734 - r344739;
double r344741 = r344740 + r344735;
double r344742 = z;
double r344743 = r344741 - r344742;
return r344743;
}




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 2020024
(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))