\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
\left(\left(\log \left(\sqrt[3]{x + y} \cdot \sqrt[3]{x + y}\right) + \left(\log \left(\sqrt[3]{x + y}\right) + \log 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 r367099 = x;
double r367100 = y;
double r367101 = r367099 + r367100;
double r367102 = log(r367101);
double r367103 = z;
double r367104 = log(r367103);
double r367105 = r367102 + r367104;
double r367106 = t;
double r367107 = r367105 - r367106;
double r367108 = a;
double r367109 = 0.5;
double r367110 = r367108 - r367109;
double r367111 = log(r367106);
double r367112 = r367110 * r367111;
double r367113 = r367107 + r367112;
return r367113;
}
double f(double x, double y, double z, double t, double a) {
double r367114 = x;
double r367115 = y;
double r367116 = r367114 + r367115;
double r367117 = cbrt(r367116);
double r367118 = r367117 * r367117;
double r367119 = log(r367118);
double r367120 = log(r367117);
double r367121 = z;
double r367122 = log(r367121);
double r367123 = r367120 + r367122;
double r367124 = r367119 + r367123;
double r367125 = t;
double r367126 = r367124 - r367125;
double r367127 = a;
double r367128 = 0.5;
double r367129 = r367127 - r367128;
double r367130 = log(r367125);
double r367131 = r367129 * r367130;
double r367132 = r367126 + r367131;
return r367132;
}




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 add-cube-cbrt0.3
Applied log-prod0.3
Applied associate-+l+0.3
Final simplification0.3
herbie shell --seed 2019362
(FPCore (x y z t a)
:name "Numeric.SpecFunctions:logGammaL from math-functions-0.1.5.2"
:precision binary64
:herbie-target
(+ (log (+ x y)) (+ (- (log z) t) (* (- a 0.5) (log t))))
(+ (- (+ (log (+ x y)) (log z)) t) (* (- a 0.5) (log t))))