\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
\left(\left(\left(\log \left(y + x\right) + \log \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right)\right) + \log \left(\sqrt[3]{z}\right)\right) - t\right) + \left(a - 0.5\right) \cdot \log tdouble f(double x, double y, double z, double t, double a) {
double r5416027 = x;
double r5416028 = y;
double r5416029 = r5416027 + r5416028;
double r5416030 = log(r5416029);
double r5416031 = z;
double r5416032 = log(r5416031);
double r5416033 = r5416030 + r5416032;
double r5416034 = t;
double r5416035 = r5416033 - r5416034;
double r5416036 = a;
double r5416037 = 0.5;
double r5416038 = r5416036 - r5416037;
double r5416039 = log(r5416034);
double r5416040 = r5416038 * r5416039;
double r5416041 = r5416035 + r5416040;
return r5416041;
}
double f(double x, double y, double z, double t, double a) {
double r5416042 = y;
double r5416043 = x;
double r5416044 = r5416042 + r5416043;
double r5416045 = log(r5416044);
double r5416046 = z;
double r5416047 = cbrt(r5416046);
double r5416048 = r5416047 * r5416047;
double r5416049 = log(r5416048);
double r5416050 = r5416045 + r5416049;
double r5416051 = log(r5416047);
double r5416052 = r5416050 + r5416051;
double r5416053 = t;
double r5416054 = r5416052 - r5416053;
double r5416055 = a;
double r5416056 = 0.5;
double r5416057 = r5416055 - r5416056;
double r5416058 = log(r5416053);
double r5416059 = r5416057 * r5416058;
double r5416060 = r5416054 + r5416059;
return r5416060;
}




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.2 |
| Herbie | 0.3 |
Initial program 0.3
rmApplied add-cube-cbrt0.3
Applied log-prod0.3
Applied associate-+r+0.3
Final simplification0.3
herbie shell --seed 2019156 +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))))