\left(\left(x - \left(y + 0.5\right) \cdot \log y\right) + y\right) - z
x + \left(\left(y - \left(y + 0.5\right) \cdot \log y\right) - z\right)
double f(double x, double y, double z) {
double r31009605 = x;
double r31009606 = y;
double r31009607 = 0.5;
double r31009608 = r31009606 + r31009607;
double r31009609 = log(r31009606);
double r31009610 = r31009608 * r31009609;
double r31009611 = r31009605 - r31009610;
double r31009612 = r31009611 + r31009606;
double r31009613 = z;
double r31009614 = r31009612 - r31009613;
return r31009614;
}
double f(double x, double y, double z) {
double r31009615 = x;
double r31009616 = y;
double r31009617 = 0.5;
double r31009618 = r31009616 + r31009617;
double r31009619 = log(r31009616);
double r31009620 = r31009618 * r31009619;
double r31009621 = r31009616 - r31009620;
double r31009622 = z;
double r31009623 = r31009621 - r31009622;
double r31009624 = r31009615 + r31009623;
return r31009624;
}




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
rmApplied sub-neg0.1
Applied associate-+l+0.1
Applied associate--l+0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019158
(FPCore (x y z)
:name "Numeric.SpecFunctions:stirlingError from math-functions-0.1.5.2"
:herbie-target
(- (- (+ y x) z) (* (+ y 0.5) (log y)))
(- (+ (- x (* (+ y 0.5) (log y))) y) z))