\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}\begin{array}{l}
\mathbf{if}\;\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} \le -1:\\
\;\;\;\;\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}\\
\mathbf{else}:\\
\;\;\;\;\frac{e^{\log \left(\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right)\right)}}{2}\\
\end{array}double f(double alpha, double beta) {
double r126425 = beta;
double r126426 = alpha;
double r126427 = r126425 - r126426;
double r126428 = r126426 + r126425;
double r126429 = 2.0;
double r126430 = r126428 + r126429;
double r126431 = r126427 / r126430;
double r126432 = 1.0;
double r126433 = r126431 + r126432;
double r126434 = r126433 / r126429;
return r126434;
}
double f(double alpha, double beta) {
double r126435 = beta;
double r126436 = alpha;
double r126437 = r126435 - r126436;
double r126438 = r126436 + r126435;
double r126439 = 2.0;
double r126440 = r126438 + r126439;
double r126441 = r126437 / r126440;
double r126442 = -1.0;
bool r126443 = r126441 <= r126442;
double r126444 = r126435 / r126440;
double r126445 = 4.0;
double r126446 = 1.0;
double r126447 = 2.0;
double r126448 = pow(r126436, r126447);
double r126449 = r126446 / r126448;
double r126450 = r126446 / r126436;
double r126451 = 8.0;
double r126452 = 3.0;
double r126453 = pow(r126436, r126452);
double r126454 = r126446 / r126453;
double r126455 = r126451 * r126454;
double r126456 = fma(r126439, r126450, r126455);
double r126457 = -r126456;
double r126458 = fma(r126445, r126449, r126457);
double r126459 = r126444 - r126458;
double r126460 = r126459 / r126439;
double r126461 = r126436 / r126440;
double r126462 = 1.0;
double r126463 = r126461 - r126462;
double r126464 = r126444 - r126463;
double r126465 = log(r126464);
double r126466 = exp(r126465);
double r126467 = r126466 / r126439;
double r126468 = r126443 ? r126460 : r126467;
return r126468;
}



Bits error versus alpha



Bits error versus beta
if (/ (- beta alpha) (+ (+ alpha beta) 2.0)) < -1.0Initial program 60.7
rmApplied div-sub60.7
Applied associate-+l-58.6
Taylor expanded around inf 11.8
Simplified11.8
if -1.0 < (/ (- beta alpha) (+ (+ alpha beta) 2.0)) Initial program 0.6
rmApplied div-sub0.6
Applied associate-+l-0.6
rmApplied add-exp-log0.6
Final simplification3.4
herbie shell --seed 2019344 +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))