\frac{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\right) \cdot y + t}{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}\frac{1}{\frac{1}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, y, z\right), y, 27464.7644704999984242022037506103515625\right), y, 230661.5106160000141244381666183471679688\right), y, t\right)}{\mathsf{fma}\left(y, \mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), i\right)}}}double f(double x, double y, double z, double t, double a, double b, double c, double i) {
double r89989 = x;
double r89990 = y;
double r89991 = r89989 * r89990;
double r89992 = z;
double r89993 = r89991 + r89992;
double r89994 = r89993 * r89990;
double r89995 = 27464.7644705;
double r89996 = r89994 + r89995;
double r89997 = r89996 * r89990;
double r89998 = 230661.510616;
double r89999 = r89997 + r89998;
double r90000 = r89999 * r89990;
double r90001 = t;
double r90002 = r90000 + r90001;
double r90003 = a;
double r90004 = r89990 + r90003;
double r90005 = r90004 * r89990;
double r90006 = b;
double r90007 = r90005 + r90006;
double r90008 = r90007 * r89990;
double r90009 = c;
double r90010 = r90008 + r90009;
double r90011 = r90010 * r89990;
double r90012 = i;
double r90013 = r90011 + r90012;
double r90014 = r90002 / r90013;
return r90014;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
double r90015 = 1.0;
double r90016 = x;
double r90017 = y;
double r90018 = z;
double r90019 = fma(r90016, r90017, r90018);
double r90020 = 27464.7644705;
double r90021 = fma(r90019, r90017, r90020);
double r90022 = 230661.510616;
double r90023 = fma(r90021, r90017, r90022);
double r90024 = t;
double r90025 = fma(r90023, r90017, r90024);
double r90026 = a;
double r90027 = r90017 + r90026;
double r90028 = b;
double r90029 = fma(r90027, r90017, r90028);
double r90030 = c;
double r90031 = fma(r90029, r90017, r90030);
double r90032 = i;
double r90033 = fma(r90017, r90031, r90032);
double r90034 = r90025 / r90033;
double r90035 = r90015 / r90034;
double r90036 = r90015 / r90035;
return r90036;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a



Bits error versus b



Bits error versus c



Bits error versus i
Initial program 29.1
Simplified29.1
rmApplied clear-num29.3
rmApplied clear-num29.3
Simplified29.3
Final simplification29.3
herbie shell --seed 2019235 +o rules:numerics
(FPCore (x y z t a b c i)
:name "Numeric.SpecFunctions:logGamma from math-functions-0.1.5.2"
:precision binary64
(/ (+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.764470499998) y) 230661.510616000014) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)))