\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{\left(\left(\left(y + a\right) \cdot y + b\right) \cdot y + c\right) \cdot y + i}{\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\right) \cdot y + t}}double f(double x, double y, double z, double t, double a, double b, double c, double i) {
double r56857 = x;
double r56858 = y;
double r56859 = r56857 * r56858;
double r56860 = z;
double r56861 = r56859 + r56860;
double r56862 = r56861 * r56858;
double r56863 = 27464.7644705;
double r56864 = r56862 + r56863;
double r56865 = r56864 * r56858;
double r56866 = 230661.510616;
double r56867 = r56865 + r56866;
double r56868 = r56867 * r56858;
double r56869 = t;
double r56870 = r56868 + r56869;
double r56871 = a;
double r56872 = r56858 + r56871;
double r56873 = r56872 * r56858;
double r56874 = b;
double r56875 = r56873 + r56874;
double r56876 = r56875 * r56858;
double r56877 = c;
double r56878 = r56876 + r56877;
double r56879 = r56878 * r56858;
double r56880 = i;
double r56881 = r56879 + r56880;
double r56882 = r56870 / r56881;
return r56882;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
double r56883 = 1.0;
double r56884 = y;
double r56885 = a;
double r56886 = r56884 + r56885;
double r56887 = r56886 * r56884;
double r56888 = b;
double r56889 = r56887 + r56888;
double r56890 = r56889 * r56884;
double r56891 = c;
double r56892 = r56890 + r56891;
double r56893 = r56892 * r56884;
double r56894 = i;
double r56895 = r56893 + r56894;
double r56896 = x;
double r56897 = r56896 * r56884;
double r56898 = z;
double r56899 = r56897 + r56898;
double r56900 = r56899 * r56884;
double r56901 = 27464.7644705;
double r56902 = r56900 + r56901;
double r56903 = r56902 * r56884;
double r56904 = 230661.510616;
double r56905 = r56903 + r56904;
double r56906 = r56905 * r56884;
double r56907 = t;
double r56908 = r56906 + r56907;
double r56909 = r56895 / r56908;
double r56910 = r56883 / r56909;
return r56910;
}



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
Results
Initial program 28.9
rmApplied clear-num29.1
Final simplification29.1
herbie shell --seed 2019346
(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.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)))