\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}\begin{array}{l}
\mathbf{if}\;\alpha \le 25643285862390824:\\
\;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \mathsf{fma}\left(\alpha, \frac{1}{\left(\alpha + \beta\right) + 2}, -1\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\beta \cdot \frac{1}{\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 r103527 = beta;
double r103528 = alpha;
double r103529 = r103527 - r103528;
double r103530 = r103528 + r103527;
double r103531 = 2.0;
double r103532 = r103530 + r103531;
double r103533 = r103529 / r103532;
double r103534 = 1.0;
double r103535 = r103533 + r103534;
double r103536 = r103535 / r103531;
return r103536;
}
double f(double alpha, double beta) {
double r103537 = alpha;
double r103538 = 25643285862390824.0;
bool r103539 = r103537 <= r103538;
double r103540 = beta;
double r103541 = r103537 + r103540;
double r103542 = 2.0;
double r103543 = r103541 + r103542;
double r103544 = r103540 / r103543;
double r103545 = 1.0;
double r103546 = r103545 / r103543;
double r103547 = 1.0;
double r103548 = -r103547;
double r103549 = fma(r103537, r103546, r103548);
double r103550 = r103544 - r103549;
double r103551 = r103550 / r103542;
double r103552 = r103540 * r103546;
double r103553 = 4.0;
double r103554 = 2.0;
double r103555 = pow(r103537, r103554);
double r103556 = r103545 / r103555;
double r103557 = r103545 / r103537;
double r103558 = 8.0;
double r103559 = 3.0;
double r103560 = pow(r103537, r103559);
double r103561 = r103545 / r103560;
double r103562 = r103558 * r103561;
double r103563 = fma(r103542, r103557, r103562);
double r103564 = -r103563;
double r103565 = fma(r103553, r103556, r103564);
double r103566 = r103552 - r103565;
double r103567 = r103566 / r103542;
double r103568 = r103539 ? r103551 : r103567;
return r103568;
}



Bits error versus alpha



Bits error versus beta
if alpha < 25643285862390824.0Initial program 0.3
rmApplied div-sub0.3
Applied associate-+l-0.3
rmApplied div-inv0.3
Applied fma-neg0.3
if 25643285862390824.0 < alpha Initial program 50.9
rmApplied div-sub50.9
Applied associate-+l-49.2
rmApplied add-log-exp49.2
Applied add-log-exp49.3
Applied diff-log49.3
Simplified49.3
rmApplied div-inv49.3
Taylor expanded around inf 18.1
Simplified18.1
Final simplification6.0
herbie shell --seed 2020018 +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))