\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 r101572 = x;
double r101573 = y;
double r101574 = r101572 * r101573;
double r101575 = z;
double r101576 = r101574 + r101575;
double r101577 = r101576 * r101573;
double r101578 = 27464.7644705;
double r101579 = r101577 + r101578;
double r101580 = r101579 * r101573;
double r101581 = 230661.510616;
double r101582 = r101580 + r101581;
double r101583 = r101582 * r101573;
double r101584 = t;
double r101585 = r101583 + r101584;
double r101586 = a;
double r101587 = r101573 + r101586;
double r101588 = r101587 * r101573;
double r101589 = b;
double r101590 = r101588 + r101589;
double r101591 = r101590 * r101573;
double r101592 = c;
double r101593 = r101591 + r101592;
double r101594 = r101593 * r101573;
double r101595 = i;
double r101596 = r101594 + r101595;
double r101597 = r101585 / r101596;
return r101597;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
double r101598 = y;
double r101599 = -1.1154426380429388e+44;
bool r101600 = r101598 <= r101599;
double r101601 = 5.660347026355408e+100;
bool r101602 = r101598 <= r101601;
double r101603 = !r101602;
bool r101604 = r101600 || r101603;
double r101605 = x;
double r101606 = z;
double r101607 = r101606 / r101598;
double r101608 = r101605 + r101607;
double r101609 = r101605 * r101598;
double r101610 = r101609 + r101606;
double r101611 = r101610 * r101598;
double r101612 = 27464.7644705;
double r101613 = r101611 + r101612;
double r101614 = r101613 * r101598;
double r101615 = 230661.510616;
double r101616 = r101614 + r101615;
double r101617 = r101616 * r101598;
double r101618 = t;
double r101619 = r101617 + r101618;
double r101620 = 1.0;
double r101621 = a;
double r101622 = r101598 + r101621;
double r101623 = b;
double r101624 = fma(r101622, r101598, r101623);
double r101625 = c;
double r101626 = fma(r101624, r101598, r101625);
double r101627 = i;
double r101628 = fma(r101626, r101598, r101627);
double r101629 = r101620 / r101628;
double r101630 = r101619 * r101629;
double r101631 = r101604 ? r101608 : r101630;
return r101631;
}



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)))