\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}\begin{array}{l}
\mathbf{if}\;\alpha \le 1.0243503852289514 \cdot 10^{45}:\\
\;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \log \left(e^{\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1}\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;\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}\\
\end{array}double f(double alpha, double beta) {
double r170004 = beta;
double r170005 = alpha;
double r170006 = r170004 - r170005;
double r170007 = r170005 + r170004;
double r170008 = 2.0;
double r170009 = r170007 + r170008;
double r170010 = r170006 / r170009;
double r170011 = 1.0;
double r170012 = r170010 + r170011;
double r170013 = r170012 / r170008;
return r170013;
}
double f(double alpha, double beta) {
double r170014 = alpha;
double r170015 = 1.0243503852289514e+45;
bool r170016 = r170014 <= r170015;
double r170017 = beta;
double r170018 = r170014 + r170017;
double r170019 = 2.0;
double r170020 = r170018 + r170019;
double r170021 = r170017 / r170020;
double r170022 = r170014 / r170020;
double r170023 = 1.0;
double r170024 = r170022 - r170023;
double r170025 = exp(r170024);
double r170026 = log(r170025);
double r170027 = r170021 - r170026;
double r170028 = r170027 / r170019;
double r170029 = 4.0;
double r170030 = 1.0;
double r170031 = 2.0;
double r170032 = pow(r170014, r170031);
double r170033 = r170030 / r170032;
double r170034 = r170030 / r170014;
double r170035 = 8.0;
double r170036 = 3.0;
double r170037 = pow(r170014, r170036);
double r170038 = r170030 / r170037;
double r170039 = r170035 * r170038;
double r170040 = fma(r170019, r170034, r170039);
double r170041 = -r170040;
double r170042 = fma(r170029, r170033, r170041);
double r170043 = r170021 - r170042;
double r170044 = r170043 / r170019;
double r170045 = r170016 ? r170028 : r170044;
return r170045;
}



Bits error versus alpha



Bits error versus beta
if alpha < 1.0243503852289514e+45Initial program 2.2
rmApplied div-sub2.2
Applied associate-+l-2.2
rmApplied log1p-expm1-u2.2
rmApplied add-log-exp2.2
Simplified2.2
if 1.0243503852289514e+45 < alpha Initial program 51.3
rmApplied div-sub51.3
Applied associate-+l-49.4
rmApplied log1p-expm1-u49.5
rmApplied add-log-exp49.5
Simplified49.5
Taylor expanded around inf 18.8
Simplified18.8
Final simplification7.0
herbie shell --seed 2020003 +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))