\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 r107908 = x;
double r107909 = y;
double r107910 = 0.5;
double r107911 = r107909 + r107910;
double r107912 = log(r107909);
double r107913 = r107911 * r107912;
double r107914 = r107908 - r107913;
double r107915 = r107914 + r107909;
double r107916 = z;
double r107917 = r107915 - r107916;
return r107917;
}
double f(double x, double y, double z) {
double r107918 = x;
double r107919 = y;
double r107920 = 0.5;
double r107921 = r107919 + r107920;
double r107922 = log(r107919);
double r107923 = r107921 * r107922;
double r107924 = r107918 - r107923;
double r107925 = r107924 + r107919;
double r107926 = z;
double r107927 = r107925 - r107926;
return r107927;
}




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