\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}\begin{array}{l}
\mathbf{if}\;\alpha \le 3065973151834865664:\\
\;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \log \left(e^{\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1}\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \mathsf{fma}\left(4, \frac{1}{{\alpha}^{2}}, -\mathsf{fma}\left(2, \frac{1}{\alpha}, 8 \cdot \frac{1}{{\alpha}^{3}}\right)\right)}{2}\\
\end{array}double f(double alpha, double beta) {
double r98432 = beta;
double r98433 = alpha;
double r98434 = r98432 - r98433;
double r98435 = r98433 + r98432;
double r98436 = 2.0;
double r98437 = r98435 + r98436;
double r98438 = r98434 / r98437;
double r98439 = 1.0;
double r98440 = r98438 + r98439;
double r98441 = r98440 / r98436;
return r98441;
}
double f(double alpha, double beta) {
double r98442 = alpha;
double r98443 = 3.0659731518348657e+18;
bool r98444 = r98442 <= r98443;
double r98445 = beta;
double r98446 = r98442 + r98445;
double r98447 = 2.0;
double r98448 = r98446 + r98447;
double r98449 = r98445 / r98448;
double r98450 = r98442 / r98448;
double r98451 = 1.0;
double r98452 = r98450 - r98451;
double r98453 = exp(r98452);
double r98454 = log(r98453);
double r98455 = r98449 - r98454;
double r98456 = r98455 / r98447;
double r98457 = 4.0;
double r98458 = 1.0;
double r98459 = 2.0;
double r98460 = pow(r98442, r98459);
double r98461 = r98458 / r98460;
double r98462 = r98458 / r98442;
double r98463 = 8.0;
double r98464 = 3.0;
double r98465 = pow(r98442, r98464);
double r98466 = r98458 / r98465;
double r98467 = r98463 * r98466;
double r98468 = fma(r98447, r98462, r98467);
double r98469 = -r98468;
double r98470 = fma(r98457, r98461, r98469);
double r98471 = r98449 - r98470;
double r98472 = r98471 / r98447;
double r98473 = r98444 ? r98456 : r98472;
return r98473;
}



Bits error versus alpha



Bits error versus beta
if alpha < 3.0659731518348657e+18Initial program 0.4
rmApplied div-sub0.4
Applied associate-+l-0.4
rmApplied add-log-exp0.4
Applied add-log-exp0.4
Applied diff-log0.4
Simplified0.4
if 3.0659731518348657e+18 < alpha Initial program 50.7
rmApplied div-sub50.7
Applied associate-+l-49.0
Taylor expanded around inf 18.3
Simplified18.3
Final simplification6.0
herbie shell --seed 2020002 +o rules:numerics
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/1"
:precision binary64
:pre (and (> alpha -1) (> beta -1))
(/ (+ (/ (- beta alpha) (+ (+ alpha beta) 2)) 1) 2))