\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 r64565 = x;
double r64566 = y;
double r64567 = r64565 * r64566;
double r64568 = z;
double r64569 = r64567 + r64568;
double r64570 = r64569 * r64566;
double r64571 = 27464.7644705;
double r64572 = r64570 + r64571;
double r64573 = r64572 * r64566;
double r64574 = 230661.510616;
double r64575 = r64573 + r64574;
double r64576 = r64575 * r64566;
double r64577 = t;
double r64578 = r64576 + r64577;
double r64579 = a;
double r64580 = r64566 + r64579;
double r64581 = r64580 * r64566;
double r64582 = b;
double r64583 = r64581 + r64582;
double r64584 = r64583 * r64566;
double r64585 = c;
double r64586 = r64584 + r64585;
double r64587 = r64586 * r64566;
double r64588 = i;
double r64589 = r64587 + r64588;
double r64590 = r64578 / r64589;
return r64590;
}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
double r64591 = y;
double r64592 = -1.1154426380429388e+44;
bool r64593 = r64591 <= r64592;
double r64594 = 5.660347026355408e+100;
bool r64595 = r64591 <= r64594;
double r64596 = !r64595;
bool r64597 = r64593 || r64596;
double r64598 = x;
double r64599 = z;
double r64600 = r64599 / r64591;
double r64601 = r64598 + r64600;
double r64602 = r64598 * r64591;
double r64603 = r64602 + r64599;
double r64604 = r64603 * r64591;
double r64605 = 27464.7644705;
double r64606 = r64604 + r64605;
double r64607 = r64606 * r64591;
double r64608 = 230661.510616;
double r64609 = r64607 + r64608;
double r64610 = r64609 * r64591;
double r64611 = t;
double r64612 = r64610 + r64611;
double r64613 = 1.0;
double r64614 = a;
double r64615 = r64591 + r64614;
double r64616 = b;
double r64617 = fma(r64615, r64591, r64616);
double r64618 = c;
double r64619 = fma(r64617, r64591, r64618);
double r64620 = i;
double r64621 = fma(r64619, r64591, r64620);
double r64622 = r64613 / r64621;
double r64623 = r64612 * r64622;
double r64624 = r64597 ? r64601 : r64623;
return r64624;
}



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