\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 1.70186684655255389 \cdot 10^{171}:\\
\;\;\;\;\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1} \cdot \frac{1}{\frac{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}{1}}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\\
\mathbf{else}:\\
\;\;\;\;\frac{0}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\\
\end{array}double f(double alpha, double beta) {
double r358 = alpha;
double r359 = beta;
double r360 = r358 + r359;
double r361 = r359 * r358;
double r362 = r360 + r361;
double r363 = 1.0;
double r364 = r362 + r363;
double r365 = 2.0;
double r366 = r365 * r363;
double r367 = r360 + r366;
double r368 = r364 / r367;
double r369 = r368 / r367;
double r370 = r367 + r363;
double r371 = r369 / r370;
return r371;
}
double f(double alpha, double beta) {
double r372 = beta;
double r373 = 1.7018668465525539e+171;
bool r374 = r372 <= r373;
double r375 = alpha;
double r376 = r375 + r372;
double r377 = r372 * r375;
double r378 = r376 + r377;
double r379 = 1.0;
double r380 = r378 + r379;
double r381 = 2.0;
double r382 = r381 * r379;
double r383 = r376 + r382;
double r384 = r380 / r383;
double r385 = 1.0;
double r386 = fma(r379, r381, r376);
double r387 = r386 / r385;
double r388 = r385 / r387;
double r389 = r384 * r388;
double r390 = r383 + r379;
double r391 = r389 / r390;
double r392 = 0.0;
double r393 = r392 / r390;
double r394 = r374 ? r391 : r393;
return r394;
}



Bits error versus alpha



Bits error versus beta
if beta < 1.7018668465525539e+171Initial program 1.5
rmApplied div-inv1.5
Simplified1.5
if 1.7018668465525539e+171 < beta Initial program 16.5
Taylor expanded around inf 7.8
Final simplification2.4
herbie shell --seed 2020025 +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)))