\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 r455061 = x;
double r455062 = y;
double r455063 = 0.5;
double r455064 = r455062 + r455063;
double r455065 = log(r455062);
double r455066 = r455064 * r455065;
double r455067 = r455061 - r455066;
double r455068 = r455067 + r455062;
double r455069 = z;
double r455070 = r455068 - r455069;
return r455070;
}
double f(double x, double y, double z) {
double r455071 = x;
double r455072 = y;
double r455073 = 0.5;
double r455074 = r455072 + r455073;
double r455075 = log(r455072);
double r455076 = r455074 * r455075;
double r455077 = r455071 - r455076;
double r455078 = r455077 + r455072;
double r455079 = z;
double r455080 = r455078 - r455079;
return r455080;
}




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