\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{2}{\alpha} + \frac{8}{{\alpha}^{3}}\right)\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{{\left(\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2}\right)}^{3} + {1}^{3}}{\mathsf{fma}\left(\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2}, \frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2}, 1 \cdot \left(1 - \frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2}\right)\right)}}{2}\\
\end{array}double f(double alpha, double beta) {
double r68006 = beta;
double r68007 = alpha;
double r68008 = r68006 - r68007;
double r68009 = r68007 + r68006;
double r68010 = 2.0;
double r68011 = r68009 + r68010;
double r68012 = r68008 / r68011;
double r68013 = 1.0;
double r68014 = r68012 + r68013;
double r68015 = r68014 / r68010;
return r68015;
}
double f(double alpha, double beta) {
double r68016 = beta;
double r68017 = alpha;
double r68018 = r68016 - r68017;
double r68019 = r68017 + r68016;
double r68020 = 2.0;
double r68021 = r68019 + r68020;
double r68022 = r68018 / r68021;
double r68023 = -0.9999815020213579;
bool r68024 = r68022 <= r68023;
double r68025 = r68016 / r68021;
double r68026 = 4.0;
double r68027 = r68017 * r68017;
double r68028 = r68026 / r68027;
double r68029 = r68020 / r68017;
double r68030 = 8.0;
double r68031 = 3.0;
double r68032 = pow(r68017, r68031);
double r68033 = r68030 / r68032;
double r68034 = r68029 + r68033;
double r68035 = r68028 - r68034;
double r68036 = r68025 - r68035;
double r68037 = r68036 / r68020;
double r68038 = pow(r68022, r68031);
double r68039 = 1.0;
double r68040 = pow(r68039, r68031);
double r68041 = r68038 + r68040;
double r68042 = r68039 - r68022;
double r68043 = r68039 * r68042;
double r68044 = fma(r68022, r68022, r68043);
double r68045 = r68041 / r68044;
double r68046 = r68045 / r68020;
double r68047 = r68024 ? r68037 : r68046;
return r68047;
}



Bits error versus alpha



Bits error versus beta
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 +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))