\left(\left(x - \left(y + 0.5\right) \cdot \log y\right) + y\right) - z
\left(y + x\right) + \left(-\mathsf{fma}\left(y + 0.5, \log y, z\right)\right)double f(double x, double y, double z) {
double r196009 = x;
double r196010 = y;
double r196011 = 0.5;
double r196012 = r196010 + r196011;
double r196013 = log(r196010);
double r196014 = r196012 * r196013;
double r196015 = r196009 - r196014;
double r196016 = r196015 + r196010;
double r196017 = z;
double r196018 = r196016 - r196017;
return r196018;
}
double f(double x, double y, double z) {
double r196019 = y;
double r196020 = x;
double r196021 = r196019 + r196020;
double r196022 = 0.5;
double r196023 = r196019 + r196022;
double r196024 = log(r196019);
double r196025 = z;
double r196026 = fma(r196023, r196024, r196025);
double r196027 = -r196026;
double r196028 = r196021 + r196027;
return r196028;
}




Bits error versus x




Bits error versus y




Bits error versus z
| Original | 0.1 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 0.1
Simplified0.1
rmApplied sub-neg0.1
Final simplification0.1
herbie shell --seed 2019198 +o rules:numerics
(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))