\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 5.056793302986320848262884903425314505228 \cdot 10^{175}:\\
\;\;\;\;\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)}}{1 \cdot 2 + \left(\left(\alpha + \beta\right) + 1\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{2}{{\alpha}^{2}} + \left(1 - \frac{1}{\alpha}\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{1 \cdot 2 + \left(\left(\alpha + \beta\right) + 1\right)}\\
\end{array}double f(double alpha, double beta) {
double r116395 = alpha;
double r116396 = beta;
double r116397 = r116395 + r116396;
double r116398 = r116396 * r116395;
double r116399 = r116397 + r116398;
double r116400 = 1.0;
double r116401 = r116399 + r116400;
double r116402 = 2.0;
double r116403 = r116402 * r116400;
double r116404 = r116397 + r116403;
double r116405 = r116401 / r116404;
double r116406 = r116405 / r116404;
double r116407 = r116404 + r116400;
double r116408 = r116406 / r116407;
return r116408;
}
double f(double alpha, double beta) {
double r116409 = alpha;
double r116410 = 5.056793302986321e+175;
bool r116411 = r116409 <= r116410;
double r116412 = 1.0;
double r116413 = beta;
double r116414 = r116409 + r116413;
double r116415 = fma(r116409, r116413, r116414);
double r116416 = r116412 + r116415;
double r116417 = 2.0;
double r116418 = fma(r116412, r116417, r116414);
double r116419 = r116416 / r116418;
double r116420 = r116419 / r116418;
double r116421 = r116412 * r116417;
double r116422 = r116414 + r116412;
double r116423 = r116421 + r116422;
double r116424 = r116420 / r116423;
double r116425 = 2.0;
double r116426 = pow(r116409, r116425);
double r116427 = r116417 / r116426;
double r116428 = 1.0;
double r116429 = r116412 / r116409;
double r116430 = r116428 - r116429;
double r116431 = r116427 + r116430;
double r116432 = r116431 / r116418;
double r116433 = r116432 / r116423;
double r116434 = r116411 ? r116424 : r116433;
return r116434;
}



Bits error versus alpha



Bits error versus beta
if alpha < 5.056793302986321e+175Initial program 1.7
Simplified1.7
rmApplied fma-udef1.7
Applied associate-+l+1.7
if 5.056793302986321e+175 < alpha Initial program 16.3
Simplified16.3
rmApplied fma-udef16.3
Applied associate-+l+16.3
Taylor expanded around inf 7.4
Simplified7.4
Final simplification2.5
herbie shell --seed 2019325 +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)))