\left(\left(x - \left(y + 0.5\right) \cdot \log y\right) + y\right) - z
\left(y + \left(x - \left(y + 0.5\right) \cdot \log y\right)\right) - z
double f(double x, double y, double z) {
double r17449937 = x;
double r17449938 = y;
double r17449939 = 0.5;
double r17449940 = r17449938 + r17449939;
double r17449941 = log(r17449938);
double r17449942 = r17449940 * r17449941;
double r17449943 = r17449937 - r17449942;
double r17449944 = r17449943 + r17449938;
double r17449945 = z;
double r17449946 = r17449944 - r17449945;
return r17449946;
}
double f(double x, double y, double z) {
double r17449947 = y;
double r17449948 = x;
double r17449949 = 0.5;
double r17449950 = r17449947 + r17449949;
double r17449951 = log(r17449947);
double r17449952 = r17449950 * r17449951;
double r17449953 = r17449948 - r17449952;
double r17449954 = r17449947 + r17449953;
double r17449955 = z;
double r17449956 = r17449954 - r17449955;
return r17449956;
}




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