\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}\begin{array}{l}
\mathbf{if}\;\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} \le -1.0:\\
\;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\left(\frac{\frac{4.0}{\alpha}}{\alpha} - \frac{8.0}{\alpha \cdot \left(\alpha \cdot \alpha\right)}\right) - \frac{2.0}{\alpha}\right)}{2.0}\\
\mathbf{else}:\\
\;\;\;\;e^{\log \left(\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)}{2.0}\right)}\\
\end{array}double f(double alpha, double beta) {
double r3790708 = beta;
double r3790709 = alpha;
double r3790710 = r3790708 - r3790709;
double r3790711 = r3790709 + r3790708;
double r3790712 = 2.0;
double r3790713 = r3790711 + r3790712;
double r3790714 = r3790710 / r3790713;
double r3790715 = 1.0;
double r3790716 = r3790714 + r3790715;
double r3790717 = r3790716 / r3790712;
return r3790717;
}
double f(double alpha, double beta) {
double r3790718 = beta;
double r3790719 = alpha;
double r3790720 = r3790718 - r3790719;
double r3790721 = r3790719 + r3790718;
double r3790722 = 2.0;
double r3790723 = r3790721 + r3790722;
double r3790724 = r3790720 / r3790723;
double r3790725 = -1.0;
bool r3790726 = r3790724 <= r3790725;
double r3790727 = r3790718 / r3790723;
double r3790728 = 4.0;
double r3790729 = r3790728 / r3790719;
double r3790730 = r3790729 / r3790719;
double r3790731 = 8.0;
double r3790732 = r3790719 * r3790719;
double r3790733 = r3790719 * r3790732;
double r3790734 = r3790731 / r3790733;
double r3790735 = r3790730 - r3790734;
double r3790736 = r3790722 / r3790719;
double r3790737 = r3790735 - r3790736;
double r3790738 = r3790727 - r3790737;
double r3790739 = r3790738 / r3790722;
double r3790740 = r3790719 / r3790723;
double r3790741 = 1.0;
double r3790742 = r3790740 - r3790741;
double r3790743 = r3790727 - r3790742;
double r3790744 = r3790743 / r3790722;
double r3790745 = log(r3790744);
double r3790746 = exp(r3790745);
double r3790747 = r3790726 ? r3790739 : r3790746;
return r3790747;
}



Bits error versus alpha



Bits error versus beta
Results
if (/ (- beta alpha) (+ (+ alpha beta) 2.0)) < -1.0Initial program 60.6
rmApplied div-sub60.6
Applied associate-+l-58.7
Taylor expanded around inf 10.5
Simplified10.5
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
Applied add-exp-log0.6
Applied div-exp0.6
Simplified0.6
Final simplification3.1
herbie shell --seed 2019165
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/1"
:pre (and (> alpha -1) (> beta -1))
(/ (+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0) 2.0))