\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 r16504931 = x;
double r16504932 = y;
double r16504933 = 0.5;
double r16504934 = r16504932 + r16504933;
double r16504935 = log(r16504932);
double r16504936 = r16504934 * r16504935;
double r16504937 = r16504931 - r16504936;
double r16504938 = r16504937 + r16504932;
double r16504939 = z;
double r16504940 = r16504938 - r16504939;
return r16504940;
}
double f(double x, double y, double z) {
double r16504941 = y;
double r16504942 = x;
double r16504943 = 0.5;
double r16504944 = r16504941 + r16504943;
double r16504945 = log(r16504941);
double r16504946 = r16504944 * r16504945;
double r16504947 = r16504942 - r16504946;
double r16504948 = r16504941 + r16504947;
double r16504949 = z;
double r16504950 = r16504948 - r16504949;
return r16504950;
}




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