\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}\begin{array}{l}
\mathbf{if}\;y \le -1.115442638042938764322347599639232915618 \cdot 10^{44} \lor \neg \left(y \le 5.660347026355407697598823994415316445547 \cdot 10^{100}\right):\\
\;\;\;\;x + \frac{z}{y}\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\left(\left(x \cdot y + z\right) \cdot y + 27464.7644704999984242022037506103515625\right) \cdot y + 230661.5106160000141244381666183471679688\right) \cdot y + t\right) \cdot \frac{1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(y + a, y, b\right), y, c\right), y, i\right)}\\
\end{array}double f(double x, double y, double z, double t, double a, double b, double c, double i) {
double r72786 = x;
double r72787 = y;
double r72788 = r72786 * r72787;
double r72789 = z;
double r72790 = r72788 + r72789;
double r72791 = r72790 * r72787;
double r72792 = 27464.7644705;
double r72793 = r72791 + r72792;
double r72794 = r72793 * r72787;
double r72795 = 230661.510616;
double r72796 = r72794 + r72795;
double r72797 = r72796 * r72787;
double r72798 = t;
double r72799 = r72797 + r72798;
double r72800 = a;
double r72801 = r72787 + r72800;
double r72802 = r72801 * r72787;
double r72803 = b;
double r72804 = r72802 + r72803;
double r72805 = r72804 * r72787;
double r72806 = c;
double r72807 = r72805 + r72806;
double r72808 = r72807 * r72787;
double r72809 = i;
double r72810 = r72808 + r72809;
double r72811 = r72799 / r72810;
return r72811;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
double r72812 = y;
double r72813 = -1.1154426380429388e+44;
bool r72814 = r72812 <= r72813;
double r72815 = 5.660347026355408e+100;
bool r72816 = r72812 <= r72815;
double r72817 = !r72816;
bool r72818 = r72814 || r72817;
double r72819 = x;
double r72820 = z;
double r72821 = r72820 / r72812;
double r72822 = r72819 + r72821;
double r72823 = r72819 * r72812;
double r72824 = r72823 + r72820;
double r72825 = r72824 * r72812;
double r72826 = 27464.7644705;
double r72827 = r72825 + r72826;
double r72828 = r72827 * r72812;
double r72829 = 230661.510616;
double r72830 = r72828 + r72829;
double r72831 = r72830 * r72812;
double r72832 = t;
double r72833 = r72831 + r72832;
double r72834 = 1.0;
double r72835 = a;
double r72836 = r72812 + r72835;
double r72837 = b;
double r72838 = fma(r72836, r72812, r72837);
double r72839 = c;
double r72840 = fma(r72838, r72812, r72839);
double r72841 = i;
double r72842 = fma(r72840, r72812, r72841);
double r72843 = r72834 / r72842;
double r72844 = r72833 * r72843;
double r72845 = r72818 ? r72822 : r72844;
return r72845;
}



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
if y < -1.1154426380429388e+44 or 5.660347026355408e+100 < y Initial program 62.6
rmApplied add-cube-cbrt62.6
Applied associate-/r*62.6
Simplified62.6
rmApplied associate-/r*62.6
Taylor expanded around inf 16.7
if -1.1154426380429388e+44 < y < 5.660347026355408e+100Initial program 6.7
rmApplied div-inv6.8
Simplified6.8
Final simplification10.7
herbie shell --seed 2019325 +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.7644705) y) 230661.510616) y) t) (+ (* (+ (* (+ (* (+ y a) y) b) y) c) y) i)))