\frac{\frac{\left(i \cdot \left(\left(\alpha + \beta\right) + i\right)\right) \cdot \left(\beta \cdot \alpha + i \cdot \left(\left(\alpha + \beta\right) + i\right)\right)}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right)}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right) - 1}\begin{array}{l}
\mathbf{if}\;i \le 1.200334102707676578905198390790180852224 \cdot 10^{64}:\\
\;\;\;\;\frac{\frac{\left(\alpha + \beta\right) + i}{\frac{{\left(\left(\alpha + \beta\right) + 2 \cdot i\right)}^{3} + \mathsf{fma}\left(i, 2, \alpha + \beta\right) \cdot \left(-1\right)}{i}}}{\frac{\mathsf{fma}\left(i, 2, \alpha + \beta\right)}{\mathsf{fma}\left(\beta, \alpha, i \cdot \left(\left(\alpha + \beta\right) + i\right)\right)}}\\
\mathbf{elif}\;i \le 1.373853224073776070930027931834659728415 \cdot 10^{125}:\\
\;\;\;\;\frac{\frac{\left(\alpha + \beta\right) + i}{\mathsf{fma}\left(8, {i}^{2}, \mathsf{fma}\left(12, \alpha \cdot i, 12 \cdot \left(i \cdot \beta\right)\right)\right)}}{\frac{2}{i}}\\
\mathbf{else}:\\
\;\;\;\;0.0625\\
\end{array}double f(double alpha, double beta, double i) {
double r117706 = i;
double r117707 = alpha;
double r117708 = beta;
double r117709 = r117707 + r117708;
double r117710 = r117709 + r117706;
double r117711 = r117706 * r117710;
double r117712 = r117708 * r117707;
double r117713 = r117712 + r117711;
double r117714 = r117711 * r117713;
double r117715 = 2.0;
double r117716 = r117715 * r117706;
double r117717 = r117709 + r117716;
double r117718 = r117717 * r117717;
double r117719 = r117714 / r117718;
double r117720 = 1.0;
double r117721 = r117718 - r117720;
double r117722 = r117719 / r117721;
return r117722;
}
double f(double alpha, double beta, double i) {
double r117723 = i;
double r117724 = 1.2003341027076766e+64;
bool r117725 = r117723 <= r117724;
double r117726 = alpha;
double r117727 = beta;
double r117728 = r117726 + r117727;
double r117729 = r117728 + r117723;
double r117730 = 2.0;
double r117731 = r117730 * r117723;
double r117732 = r117728 + r117731;
double r117733 = 3.0;
double r117734 = pow(r117732, r117733);
double r117735 = fma(r117723, r117730, r117728);
double r117736 = 1.0;
double r117737 = -r117736;
double r117738 = r117735 * r117737;
double r117739 = r117734 + r117738;
double r117740 = r117739 / r117723;
double r117741 = r117729 / r117740;
double r117742 = r117723 * r117729;
double r117743 = fma(r117727, r117726, r117742);
double r117744 = r117735 / r117743;
double r117745 = r117741 / r117744;
double r117746 = 1.373853224073776e+125;
bool r117747 = r117723 <= r117746;
double r117748 = 8.0;
double r117749 = 2.0;
double r117750 = pow(r117723, r117749);
double r117751 = 12.0;
double r117752 = r117726 * r117723;
double r117753 = r117723 * r117727;
double r117754 = r117751 * r117753;
double r117755 = fma(r117751, r117752, r117754);
double r117756 = fma(r117748, r117750, r117755);
double r117757 = r117729 / r117756;
double r117758 = r117730 / r117723;
double r117759 = r117757 / r117758;
double r117760 = 0.0625;
double r117761 = r117747 ? r117759 : r117760;
double r117762 = r117725 ? r117745 : r117761;
return r117762;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if i < 1.2003341027076766e+64Initial program 23.1
Simplified19.3
rmApplied *-un-lft-identity19.3
Applied times-frac16.2
Applied associate-/r*16.2
Simplified16.2
if 1.2003341027076766e+64 < i < 1.373853224073776e+125Initial program 57.2
Simplified55.8
rmApplied *-un-lft-identity55.8
Applied times-frac39.7
Applied associate-/r*39.7
Simplified39.7
Taylor expanded around inf 25.5
Simplified25.5
Taylor expanded around inf 19.3
if 1.373853224073776e+125 < i Initial program 64.0
Simplified63.8
rmApplied *-un-lft-identity63.8
Applied times-frac63.8
Applied associate-/r*63.8
Simplified63.8
Taylor expanded around inf 57.4
Simplified57.4
Taylor expanded around 0 11.1
Final simplification13.8
herbie shell --seed 2020001 +o rules:numerics
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/4"
:precision binary64
:pre (and (> alpha -1) (> beta -1) (> i 1))
(/ (/ (* (* i (+ (+ alpha beta) i)) (+ (* beta alpha) (* i (+ (+ alpha beta) i)))) (* (+ (+ alpha beta) (* 2 i)) (+ (+ alpha beta) (* 2 i)))) (- (* (+ (+ alpha beta) (* 2 i)) (+ (+ alpha beta) (* 2 i))) 1)))