\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 r154461 = i;
double r154462 = alpha;
double r154463 = beta;
double r154464 = r154462 + r154463;
double r154465 = r154464 + r154461;
double r154466 = r154461 * r154465;
double r154467 = r154463 * r154462;
double r154468 = r154467 + r154466;
double r154469 = r154466 * r154468;
double r154470 = 2.0;
double r154471 = r154470 * r154461;
double r154472 = r154464 + r154471;
double r154473 = r154472 * r154472;
double r154474 = r154469 / r154473;
double r154475 = 1.0;
double r154476 = r154473 - r154475;
double r154477 = r154474 / r154476;
return r154477;
}
double f(double alpha, double beta, double i) {
double r154478 = i;
double r154479 = 1.2003341027076766e+64;
bool r154480 = r154478 <= r154479;
double r154481 = alpha;
double r154482 = beta;
double r154483 = r154481 + r154482;
double r154484 = r154483 + r154478;
double r154485 = 2.0;
double r154486 = r154485 * r154478;
double r154487 = r154483 + r154486;
double r154488 = 3.0;
double r154489 = pow(r154487, r154488);
double r154490 = fma(r154478, r154485, r154483);
double r154491 = 1.0;
double r154492 = -r154491;
double r154493 = r154490 * r154492;
double r154494 = r154489 + r154493;
double r154495 = r154494 / r154478;
double r154496 = r154484 / r154495;
double r154497 = r154478 * r154484;
double r154498 = fma(r154482, r154481, r154497);
double r154499 = r154490 / r154498;
double r154500 = r154496 / r154499;
double r154501 = 1.373853224073776e+125;
bool r154502 = r154478 <= r154501;
double r154503 = 8.0;
double r154504 = 2.0;
double r154505 = pow(r154478, r154504);
double r154506 = 12.0;
double r154507 = r154481 * r154478;
double r154508 = r154478 * r154482;
double r154509 = r154506 * r154508;
double r154510 = fma(r154506, r154507, r154509);
double r154511 = fma(r154503, r154505, r154510);
double r154512 = r154484 / r154511;
double r154513 = r154485 / r154478;
double r154514 = r154512 / r154513;
double r154515 = 0.0625;
double r154516 = r154502 ? r154514 : r154515;
double r154517 = r154480 ? r154500 : r154516;
return r154517;
}



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