\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}\;\alpha \le 2.3696559474422673 \cdot 10^{161}:\\
\;\;\;\;\frac{1 \cdot \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}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\left(2 + \left(\frac{\beta}{\alpha} + \frac{\alpha}{\beta}\right)\right) \cdot \mathsf{fma}\left(1, 2, \alpha + \beta\right)}\\
\end{array}double f(double alpha, double beta) {
double r198435 = alpha;
double r198436 = beta;
double r198437 = r198435 + r198436;
double r198438 = r198436 * r198435;
double r198439 = r198437 + r198438;
double r198440 = 1.0;
double r198441 = r198439 + r198440;
double r198442 = 2.0;
double r198443 = r198442 * r198440;
double r198444 = r198437 + r198443;
double r198445 = r198441 / r198444;
double r198446 = r198445 / r198444;
double r198447 = r198444 + r198440;
double r198448 = r198446 / r198447;
return r198448;
}
double f(double alpha, double beta) {
double r198449 = alpha;
double r198450 = 2.3696559474422673e+161;
bool r198451 = r198449 <= r198450;
double r198452 = 1.0;
double r198453 = beta;
double r198454 = r198449 + r198453;
double r198455 = r198453 * r198449;
double r198456 = r198454 + r198455;
double r198457 = 1.0;
double r198458 = r198456 + r198457;
double r198459 = 2.0;
double r198460 = r198459 * r198457;
double r198461 = r198454 + r198460;
double r198462 = r198458 / r198461;
double r198463 = r198462 / r198461;
double r198464 = r198452 * r198463;
double r198465 = r198461 + r198457;
double r198466 = r198464 / r198465;
double r198467 = 2.0;
double r198468 = r198453 / r198449;
double r198469 = r198449 / r198453;
double r198470 = r198468 + r198469;
double r198471 = r198467 + r198470;
double r198472 = fma(r198457, r198459, r198454);
double r198473 = r198471 * r198472;
double r198474 = r198452 / r198473;
double r198475 = r198451 ? r198466 : r198474;
return r198475;
}



Bits error versus alpha



Bits error versus beta
if alpha < 2.3696559474422673e+161Initial program 1.2
rmApplied *-un-lft-identity1.2
if 2.3696559474422673e+161 < alpha Initial program 17.4
rmApplied clear-num17.5
Simplified17.5
Taylor expanded around inf 0.6
Final simplification1.1
herbie shell --seed 2020057 +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)))