\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 r268823 = x;
double r268824 = y;
double r268825 = 0.5;
double r268826 = r268824 + r268825;
double r268827 = log(r268824);
double r268828 = r268826 * r268827;
double r268829 = r268823 - r268828;
double r268830 = r268829 + r268824;
double r268831 = z;
double r268832 = r268830 - r268831;
return r268832;
}
double f(double x, double y, double z) {
double r268833 = x;
double r268834 = y;
double r268835 = 0.5;
double r268836 = r268834 + r268835;
double r268837 = log(r268834);
double r268838 = r268836 * r268837;
double r268839 = r268833 - r268838;
double r268840 = r268839 + r268834;
double r268841 = z;
double r268842 = r268840 - r268841;
return r268842;
}




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