\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 3.097558604616753343996040534278213161537 \cdot 10^{192}:\\
\;\;\;\;\frac{\frac{\frac{1 + \mathsf{fma}\left(\alpha, \beta, \alpha + \beta\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) + 1}\\
\mathbf{else}:\\
\;\;\;\;0\\
\end{array}double f(double alpha, double beta) {
double r197517 = alpha;
double r197518 = beta;
double r197519 = r197517 + r197518;
double r197520 = r197518 * r197517;
double r197521 = r197519 + r197520;
double r197522 = 1.0;
double r197523 = r197521 + r197522;
double r197524 = 2.0;
double r197525 = r197524 * r197522;
double r197526 = r197519 + r197525;
double r197527 = r197523 / r197526;
double r197528 = r197527 / r197526;
double r197529 = r197526 + r197522;
double r197530 = r197528 / r197529;
return r197530;
}
double f(double alpha, double beta) {
double r197531 = beta;
double r197532 = 3.0975586046167533e+192;
bool r197533 = r197531 <= r197532;
double r197534 = 1.0;
double r197535 = alpha;
double r197536 = r197535 + r197531;
double r197537 = fma(r197535, r197531, r197536);
double r197538 = r197534 + r197537;
double r197539 = 2.0;
double r197540 = fma(r197534, r197539, r197536);
double r197541 = r197538 / r197540;
double r197542 = r197541 / r197540;
double r197543 = r197540 + r197534;
double r197544 = r197542 / r197543;
double r197545 = 0.0;
double r197546 = r197533 ? r197544 : r197545;
return r197546;
}



Bits error versus alpha



Bits error versus beta
if beta < 3.0975586046167533e+192Initial program 1.7
Simplified1.7
if 3.0975586046167533e+192 < beta Initial program 19.7
Simplified19.7
Taylor expanded around inf 7.3
Final simplification2.4
herbie shell --seed 2019326 +o rules:numerics
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/3"
:precision binary64
:pre (and (> alpha -1) (> beta -1))
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1)))