\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 r313993 = x;
double r313994 = y;
double r313995 = 0.5;
double r313996 = r313994 + r313995;
double r313997 = log(r313994);
double r313998 = r313996 * r313997;
double r313999 = r313993 - r313998;
double r314000 = r313999 + r313994;
double r314001 = z;
double r314002 = r314000 - r314001;
return r314002;
}
double f(double x, double y, double z) {
double r314003 = x;
double r314004 = y;
double r314005 = 0.5;
double r314006 = r314004 + r314005;
double r314007 = log(r314004);
double r314008 = r314006 * r314007;
double r314009 = r314003 - r314008;
double r314010 = r314009 + r314004;
double r314011 = z;
double r314012 = r314010 - r314011;
return r314012;
}




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