\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\begin{array}{l}
\mathbf{if}\;\beta \le 2.988049090043007512588141918391100231965 \cdot 10^{155}:\\
\;\;\;\;\frac{\frac{1}{\frac{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}}}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{1}{\frac{\beta}{\alpha} + \left(2 + \frac{\alpha}{\beta}\right)}}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}\\
\end{array}double f(double alpha, double beta) {
double r3351579 = alpha;
double r3351580 = beta;
double r3351581 = r3351579 + r3351580;
double r3351582 = r3351580 * r3351579;
double r3351583 = r3351581 + r3351582;
double r3351584 = 1.0;
double r3351585 = r3351583 + r3351584;
double r3351586 = 2.0;
double r3351587 = r3351586 * r3351584;
double r3351588 = r3351581 + r3351587;
double r3351589 = r3351585 / r3351588;
double r3351590 = r3351589 / r3351588;
double r3351591 = r3351588 + r3351584;
double r3351592 = r3351590 / r3351591;
return r3351592;
}
double f(double alpha, double beta) {
double r3351593 = beta;
double r3351594 = 2.9880490900430075e+155;
bool r3351595 = r3351593 <= r3351594;
double r3351596 = 1.0;
double r3351597 = 2.0;
double r3351598 = 1.0;
double r3351599 = alpha;
double r3351600 = r3351593 + r3351599;
double r3351601 = fma(r3351597, r3351598, r3351600);
double r3351602 = fma(r3351593, r3351599, r3351600);
double r3351603 = r3351598 + r3351602;
double r3351604 = r3351603 / r3351601;
double r3351605 = r3351601 / r3351604;
double r3351606 = r3351596 / r3351605;
double r3351607 = r3351598 + r3351601;
double r3351608 = r3351606 / r3351607;
double r3351609 = r3351593 / r3351599;
double r3351610 = 2.0;
double r3351611 = r3351599 / r3351593;
double r3351612 = r3351610 + r3351611;
double r3351613 = r3351609 + r3351612;
double r3351614 = r3351596 / r3351613;
double r3351615 = r3351614 / r3351607;
double r3351616 = r3351595 ? r3351608 : r3351615;
return r3351616;
}



Bits error versus alpha



Bits error versus beta
if beta < 2.9880490900430075e+155Initial program 1.3
Simplified1.3
rmApplied clear-num1.3
if 2.9880490900430075e+155 < beta Initial program 15.5
Simplified15.5
rmApplied clear-num15.5
Taylor expanded around inf 0.6
Final simplification1.2
herbie shell --seed 2019170 +o rules:numerics
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/3"
:pre (and (> alpha -1.0) (> beta -1.0))
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2.0 1.0))) (+ (+ alpha beta) (* 2.0 1.0))) (+ (+ (+ alpha beta) (* 2.0 1.0)) 1.0)))