\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 -0.9999815020213579375152335160237271338701:\\
\;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\frac{4}{\alpha \cdot \alpha} - \left(\frac{8}{{\alpha}^{3}} + \frac{2}{\alpha}\right)\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{{\left(\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2}\right)}^{3} + {1}^{3}}{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} \cdot \frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1 \cdot \left(1 - \frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2}\right)}}{2}\\
\end{array}double f(double alpha, double beta) {
double r87617 = beta;
double r87618 = alpha;
double r87619 = r87617 - r87618;
double r87620 = r87618 + r87617;
double r87621 = 2.0;
double r87622 = r87620 + r87621;
double r87623 = r87619 / r87622;
double r87624 = 1.0;
double r87625 = r87623 + r87624;
double r87626 = r87625 / r87621;
return r87626;
}
double f(double alpha, double beta) {
double r87627 = beta;
double r87628 = alpha;
double r87629 = r87627 - r87628;
double r87630 = r87628 + r87627;
double r87631 = 2.0;
double r87632 = r87630 + r87631;
double r87633 = r87629 / r87632;
double r87634 = -0.9999815020213579;
bool r87635 = r87633 <= r87634;
double r87636 = r87627 / r87632;
double r87637 = 4.0;
double r87638 = r87628 * r87628;
double r87639 = r87637 / r87638;
double r87640 = 8.0;
double r87641 = 3.0;
double r87642 = pow(r87628, r87641);
double r87643 = r87640 / r87642;
double r87644 = r87631 / r87628;
double r87645 = r87643 + r87644;
double r87646 = r87639 - r87645;
double r87647 = r87636 - r87646;
double r87648 = r87647 / r87631;
double r87649 = pow(r87633, r87641);
double r87650 = 1.0;
double r87651 = pow(r87650, r87641);
double r87652 = r87649 + r87651;
double r87653 = r87633 * r87633;
double r87654 = r87650 - r87633;
double r87655 = r87650 * r87654;
double r87656 = r87653 + r87655;
double r87657 = r87652 / r87656;
double r87658 = r87657 / r87631;
double r87659 = r87635 ? r87648 : r87658;
return r87659;
}



Bits error versus alpha



Bits error versus beta
Results
if (/ (- beta alpha) (+ (+ alpha beta) 2.0)) < -0.9999815020213579Initial program 59.5
rmApplied div-sub59.4
Applied associate-+l-57.6
Taylor expanded around inf 11.4
Simplified11.4
if -0.9999815020213579 < (/ (- beta alpha) (+ (+ alpha beta) 2.0)) Initial program 0.0
rmApplied flip3-+0.1
Simplified0.1
Final simplification3.2
herbie shell --seed 2019208
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/1"
:precision binary64
:pre (and (> alpha -1) (> beta -1))
(/ (+ (/ (- beta alpha) (+ (+ alpha beta) 2)) 1) 2))