\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 r503867 = x;
double r503868 = y;
double r503869 = 0.5;
double r503870 = r503868 + r503869;
double r503871 = log(r503868);
double r503872 = r503870 * r503871;
double r503873 = r503867 - r503872;
double r503874 = r503873 + r503868;
double r503875 = z;
double r503876 = r503874 - r503875;
return r503876;
}
double f(double x, double y, double z) {
double r503877 = x;
double r503878 = y;
double r503879 = 0.5;
double r503880 = r503878 + r503879;
double r503881 = log(r503878);
double r503882 = r503880 * r503881;
double r503883 = r503877 - r503882;
double r503884 = r503883 + r503878;
double r503885 = z;
double r503886 = r503884 - r503885;
return r503886;
}




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