\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} - \left(\left(\frac{4}{\alpha \cdot \alpha} - \frac{2}{\alpha}\right) - \frac{8}{{\alpha}^{3}}\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \log \left(e^{\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1}\right)}{2}\\
\end{array}double f(double alpha, double beta) {
double r107858 = beta;
double r107859 = alpha;
double r107860 = r107858 - r107859;
double r107861 = r107859 + r107858;
double r107862 = 2.0;
double r107863 = r107861 + r107862;
double r107864 = r107860 / r107863;
double r107865 = 1.0;
double r107866 = r107864 + r107865;
double r107867 = r107866 / r107862;
return r107867;
}
double f(double alpha, double beta) {
double r107868 = beta;
double r107869 = alpha;
double r107870 = r107868 - r107869;
double r107871 = r107869 + r107868;
double r107872 = 2.0;
double r107873 = r107871 + r107872;
double r107874 = r107870 / r107873;
double r107875 = -1.0;
bool r107876 = r107874 <= r107875;
double r107877 = r107868 / r107873;
double r107878 = 4.0;
double r107879 = r107869 * r107869;
double r107880 = r107878 / r107879;
double r107881 = r107872 / r107869;
double r107882 = r107880 - r107881;
double r107883 = 8.0;
double r107884 = 3.0;
double r107885 = pow(r107869, r107884);
double r107886 = r107883 / r107885;
double r107887 = r107882 - r107886;
double r107888 = r107877 - r107887;
double r107889 = r107888 / r107872;
double r107890 = r107869 / r107873;
double r107891 = 1.0;
double r107892 = r107890 - r107891;
double r107893 = exp(r107892);
double r107894 = log(r107893);
double r107895 = r107877 - r107894;
double r107896 = r107895 / r107872;
double r107897 = r107876 ? r107889 : r107896;
return r107897;
}



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.8
Taylor expanded around inf 10.4
Simplified10.4
if -1.0 < (/ (- beta alpha) (+ (+ alpha beta) 2.0)) Initial program 0.6
rmApplied div-sub0.6
Applied associate-+l-0.6
rmApplied add-log-exp0.6
Applied add-log-exp0.6
Applied diff-log0.6
Simplified0.6
Final simplification3.2
herbie shell --seed 2020046
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/1"
:precision binary64
:pre (and (> alpha -1) (> beta -1))
(/ (+ (/ (- beta alpha) (+ (+ alpha beta) 2)) 1) 2))