\left(\left(\log \left(x + y\right) + \log z\right) - t\right) + \left(a - 0.5\right) \cdot \log t
\log \left(x + y\right) + \mathsf{fma}\left(a - 0.5, \log t, \log z - t\right)double f(double x, double y, double z, double t, double a) {
double r52950 = x;
double r52951 = y;
double r52952 = r52950 + r52951;
double r52953 = log(r52952);
double r52954 = z;
double r52955 = log(r52954);
double r52956 = r52953 + r52955;
double r52957 = t;
double r52958 = r52956 - r52957;
double r52959 = a;
double r52960 = 0.5;
double r52961 = r52959 - r52960;
double r52962 = log(r52957);
double r52963 = r52961 * r52962;
double r52964 = r52958 + r52963;
return r52964;
}
double f(double x, double y, double z, double t, double a) {
double r52965 = x;
double r52966 = y;
double r52967 = r52965 + r52966;
double r52968 = log(r52967);
double r52969 = a;
double r52970 = 0.5;
double r52971 = r52969 - r52970;
double r52972 = t;
double r52973 = log(r52972);
double r52974 = z;
double r52975 = log(r52974);
double r52976 = r52975 - r52972;
double r52977 = fma(r52971, r52973, r52976);
double r52978 = r52968 + r52977;
return r52978;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Initial program 0.3
rmApplied associate--l+0.3
Applied associate-+l+0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019212 +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))))