\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(x + y\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 r24779916 = x;
double r24779917 = y;
double r24779918 = r24779916 + r24779917;
double r24779919 = log(r24779918);
double r24779920 = z;
double r24779921 = log(r24779920);
double r24779922 = r24779919 + r24779921;
double r24779923 = t;
double r24779924 = r24779922 - r24779923;
double r24779925 = a;
double r24779926 = 0.5;
double r24779927 = r24779925 - r24779926;
double r24779928 = log(r24779923);
double r24779929 = r24779927 * r24779928;
double r24779930 = r24779924 + r24779929;
return r24779930;
}
double f(double x, double y, double z, double t, double a) {
double r24779931 = x;
double r24779932 = y;
double r24779933 = r24779931 + r24779932;
double r24779934 = log(r24779933);
double r24779935 = z;
double r24779936 = cbrt(r24779935);
double r24779937 = r24779936 * r24779936;
double r24779938 = log(r24779937);
double r24779939 = r24779934 + r24779938;
double r24779940 = log(r24779936);
double r24779941 = r24779939 + r24779940;
double r24779942 = t;
double r24779943 = r24779941 - r24779942;
double r24779944 = a;
double r24779945 = 0.5;
double r24779946 = r24779944 - r24779945;
double r24779947 = log(r24779942);
double r24779948 = r24779946 * r24779947;
double r24779949 = r24779943 + r24779948;
return r24779949;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 0.2 |
|---|---|
| Target | 0.2 |
| Herbie | 0.3 |
Initial program 0.2
rmApplied add-cube-cbrt0.2
Applied log-prod0.3
Applied associate-+r+0.3
Final simplification0.3
herbie shell --seed 2019174
(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))))