\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
double f(double x, double y, double z, double t, double a) {
double r198077 = x;
double r198078 = y;
double r198079 = r198077 + r198078;
double r198080 = log(r198079);
double r198081 = z;
double r198082 = log(r198081);
double r198083 = r198080 + r198082;
double r198084 = t;
double r198085 = r198083 - r198084;
double r198086 = a;
double r198087 = 0.5;
double r198088 = r198086 - r198087;
double r198089 = log(r198084);
double r198090 = r198088 * r198089;
double r198091 = r198085 + r198090;
return r198091;
}
double f(double x, double y, double z, double t, double a) {
double r198092 = x;
double r198093 = y;
double r198094 = r198092 + r198093;
double r198095 = log(r198094);
double r198096 = z;
double r198097 = log(r198096);
double r198098 = r198095 + r198097;
double r198099 = t;
double r198100 = r198098 - r198099;
double r198101 = a;
double r198102 = 0.5;
double r198103 = r198101 - r198102;
double r198104 = log(r198099);
double r198105 = r198103 * r198104;
double r198106 = r198100 + r198105;
return r198106;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 0.3 |
|---|---|
| Target | 0.3 |
| Herbie | 0.3 |
Initial program 0.3
rmApplied pow10.3
Final simplification0.3
herbie shell --seed 2019199 +o rules:numerics
(FPCore (x y z t a)
:name "Numeric.SpecFunctions:logGammaL from math-functions-0.1.5.2"
:herbie-target
(+ (log (+ x y)) (+ (- (log z) t) (* (- a 0.5) (log t))))
(+ (- (+ (log (+ x y)) (log z)) t) (* (- a 0.5) (log t))))