\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
\mathsf{fma}\left(a - 0.5, \log t, \left(\mathsf{fma}\left(\log \left(\sqrt[3]{\sqrt{z}}\right), 2, \log \left(\sqrt{z}\right) + \log \left(x + y\right)\right) + \log \left(\sqrt[3]{\sqrt{z}}\right)\right) - t\right)double f(double x, double y, double z, double t, double a) {
double r49979 = x;
double r49980 = y;
double r49981 = r49979 + r49980;
double r49982 = log(r49981);
double r49983 = z;
double r49984 = log(r49983);
double r49985 = r49982 + r49984;
double r49986 = t;
double r49987 = r49985 - r49986;
double r49988 = a;
double r49989 = 0.5;
double r49990 = r49988 - r49989;
double r49991 = log(r49986);
double r49992 = r49990 * r49991;
double r49993 = r49987 + r49992;
return r49993;
}
double f(double x, double y, double z, double t, double a) {
double r49994 = a;
double r49995 = 0.5;
double r49996 = r49994 - r49995;
double r49997 = t;
double r49998 = log(r49997);
double r49999 = z;
double r50000 = sqrt(r49999);
double r50001 = cbrt(r50000);
double r50002 = log(r50001);
double r50003 = 2.0;
double r50004 = log(r50000);
double r50005 = x;
double r50006 = y;
double r50007 = r50005 + r50006;
double r50008 = log(r50007);
double r50009 = r50004 + r50008;
double r50010 = fma(r50002, r50003, r50009);
double r50011 = r50010 + r50002;
double r50012 = r50011 - r49997;
double r50013 = fma(r49996, r49998, r50012);
return r50013;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Initial program 0.3
Simplified0.3
rmApplied add-sqr-sqrt0.3
Applied log-prod0.3
Applied associate-+r+0.3
rmApplied add-cube-cbrt0.3
Applied log-prod0.3
Applied associate-+r+0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019323 +o rules:numerics
(FPCore (x y z t a)
:name "Numeric.SpecFunctions:logGammaL from math-functions-0.1.5.2"
:precision binary64
(+ (- (+ (log (+ x y)) (log z)) t) (* (- a 0.5) (log t))))