\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 r488428 = x;
double r488429 = y;
double r488430 = 0.5;
double r488431 = r488429 + r488430;
double r488432 = log(r488429);
double r488433 = r488431 * r488432;
double r488434 = r488428 - r488433;
double r488435 = r488434 + r488429;
double r488436 = z;
double r488437 = r488435 - r488436;
return r488437;
}
double f(double x, double y, double z) {
double r488438 = x;
double r488439 = y;
double r488440 = 0.5;
double r488441 = r488439 + r488440;
double r488442 = log(r488439);
double r488443 = r488441 * r488442;
double r488444 = r488438 - r488443;
double r488445 = r488444 + r488439;
double r488446 = z;
double r488447 = r488445 - r488446;
return r488447;
}




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