\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{\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(\mathsf{fma}\left(y \cdot y, a, y \cdot \left(y \cdot y + b\right)\right) + c, y, i\right)}double f(double x, double y, double z, double t, double a, double b, double c, double i) {
double r4726877 = x;
double r4726878 = y;
double r4726879 = r4726877 * r4726878;
double r4726880 = z;
double r4726881 = r4726879 + r4726880;
double r4726882 = r4726881 * r4726878;
double r4726883 = 27464.7644705;
double r4726884 = r4726882 + r4726883;
double r4726885 = r4726884 * r4726878;
double r4726886 = 230661.510616;
double r4726887 = r4726885 + r4726886;
double r4726888 = r4726887 * r4726878;
double r4726889 = t;
double r4726890 = r4726888 + r4726889;
double r4726891 = a;
double r4726892 = r4726878 + r4726891;
double r4726893 = r4726892 * r4726878;
double r4726894 = b;
double r4726895 = r4726893 + r4726894;
double r4726896 = r4726895 * r4726878;
double r4726897 = c;
double r4726898 = r4726896 + r4726897;
double r4726899 = r4726898 * r4726878;
double r4726900 = i;
double r4726901 = r4726899 + r4726900;
double r4726902 = r4726890 / r4726901;
return r4726902;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
double r4726903 = x;
double r4726904 = y;
double r4726905 = z;
double r4726906 = fma(r4726903, r4726904, r4726905);
double r4726907 = 27464.7644705;
double r4726908 = fma(r4726906, r4726904, r4726907);
double r4726909 = 230661.510616;
double r4726910 = fma(r4726908, r4726904, r4726909);
double r4726911 = t;
double r4726912 = fma(r4726910, r4726904, r4726911);
double r4726913 = r4726904 * r4726904;
double r4726914 = a;
double r4726915 = b;
double r4726916 = r4726913 + r4726915;
double r4726917 = r4726904 * r4726916;
double r4726918 = fma(r4726913, r4726914, r4726917);
double r4726919 = c;
double r4726920 = r4726918 + r4726919;
double r4726921 = i;
double r4726922 = fma(r4726920, r4726904, r4726921);
double r4726923 = r4726912 / r4726922;
return r4726923;
}



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.2
Simplified29.2
rmApplied fma-udef29.2
Taylor expanded around inf 29.3
Simplified29.2
Final simplification29.2
herbie shell --seed 2019174 +o rules:numerics
(FPCore (x y z t a b c i)
:name "Numeric.SpecFunctions:logGamma from math-functions-0.1.5.2"
(/ (+ (* (+ (* (+ (* (+ (* x y) z) y) 27464.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)))