\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.10595476891289156 \cdot 10^{89}:\\
\;\;\;\;\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{else}:\\
\;\;\;\;0.0625\\
\end{array}double f(double alpha, double beta, double i) {
double r117523 = i;
double r117524 = alpha;
double r117525 = beta;
double r117526 = r117524 + r117525;
double r117527 = r117526 + r117523;
double r117528 = r117523 * r117527;
double r117529 = r117525 * r117524;
double r117530 = r117529 + r117528;
double r117531 = r117528 * r117530;
double r117532 = 2.0;
double r117533 = r117532 * r117523;
double r117534 = r117526 + r117533;
double r117535 = r117534 * r117534;
double r117536 = r117531 / r117535;
double r117537 = 1.0;
double r117538 = r117535 - r117537;
double r117539 = r117536 / r117538;
return r117539;
}
double f(double alpha, double beta, double i) {
double r117540 = i;
double r117541 = 1.1059547689128916e+89;
bool r117542 = r117540 <= r117541;
double r117543 = alpha;
double r117544 = beta;
double r117545 = r117543 + r117544;
double r117546 = r117545 + r117540;
double r117547 = 2.0;
double r117548 = r117547 * r117540;
double r117549 = r117545 + r117548;
double r117550 = 3.0;
double r117551 = pow(r117549, r117550);
double r117552 = fma(r117540, r117547, r117545);
double r117553 = 1.0;
double r117554 = -r117553;
double r117555 = r117552 * r117554;
double r117556 = r117551 + r117555;
double r117557 = r117556 / r117540;
double r117558 = r117546 / r117557;
double r117559 = r117540 * r117546;
double r117560 = fma(r117544, r117543, r117559);
double r117561 = r117552 / r117560;
double r117562 = r117558 / r117561;
double r117563 = 0.0625;
double r117564 = r117542 ? r117562 : r117563;
return r117564;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if i < 1.1059547689128916e+89Initial program 29.8
Simplified26.4
rmApplied *-un-lft-identity26.4
Applied times-frac19.1
Applied associate-/r*19.0
Simplified19.0
if 1.1059547689128916e+89 < i Initial program 64.0
Simplified63.5
rmApplied *-un-lft-identity63.5
Applied times-frac61.2
Applied associate-/r*61.2
Simplified61.2
Taylor expanded around inf 51.8
Simplified51.8
Taylor expanded around inf 49.2
Taylor expanded around 0 13.5
Final simplification15.1
herbie shell --seed 2020036 +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)))