\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.99999999984543797:\\
\;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(4 \cdot \frac{1}{{\alpha}^{2}} - \left(2 \cdot \frac{1}{\alpha} + 8 \cdot \frac{1}{{\alpha}^{3}}\right)\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;e^{\log \left(\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right)}{2}\right)}\\
\end{array}double f(double alpha, double beta) {
double r94298 = beta;
double r94299 = alpha;
double r94300 = r94298 - r94299;
double r94301 = r94299 + r94298;
double r94302 = 2.0;
double r94303 = r94301 + r94302;
double r94304 = r94300 / r94303;
double r94305 = 1.0;
double r94306 = r94304 + r94305;
double r94307 = r94306 / r94302;
return r94307;
}
double f(double alpha, double beta) {
double r94308 = beta;
double r94309 = alpha;
double r94310 = r94308 - r94309;
double r94311 = r94309 + r94308;
double r94312 = 2.0;
double r94313 = r94311 + r94312;
double r94314 = r94310 / r94313;
double r94315 = -0.999999999845438;
bool r94316 = r94314 <= r94315;
double r94317 = r94308 / r94313;
double r94318 = 4.0;
double r94319 = 1.0;
double r94320 = 2.0;
double r94321 = pow(r94309, r94320);
double r94322 = r94319 / r94321;
double r94323 = r94318 * r94322;
double r94324 = r94319 / r94309;
double r94325 = r94312 * r94324;
double r94326 = 8.0;
double r94327 = 3.0;
double r94328 = pow(r94309, r94327);
double r94329 = r94319 / r94328;
double r94330 = r94326 * r94329;
double r94331 = r94325 + r94330;
double r94332 = r94323 - r94331;
double r94333 = r94317 - r94332;
double r94334 = r94333 / r94312;
double r94335 = r94309 / r94313;
double r94336 = 1.0;
double r94337 = r94335 - r94336;
double r94338 = r94317 - r94337;
double r94339 = r94338 / r94312;
double r94340 = log(r94339);
double r94341 = exp(r94340);
double r94342 = r94316 ? r94334 : r94341;
return r94342;
}



Bits error versus alpha



Bits error versus beta
Results
if (/ (- beta alpha) (+ (+ alpha beta) 2.0)) < -0.999999999845438Initial program 60.2
rmApplied div-sub60.2
Applied associate-+l-58.2
Taylor expanded around inf 11.8
if -0.999999999845438 < (/ (- beta alpha) (+ (+ alpha beta) 2.0)) Initial program 0.2
rmApplied div-sub0.2
Applied associate-+l-0.2
rmApplied add-exp-log0.2
Applied add-exp-log0.2
Applied div-exp0.2
Simplified0.2
Final simplification3.3
herbie shell --seed 2020003
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/1"
:precision binary64
:pre (and (> alpha -1) (> beta -1))
(/ (+ (/ (- beta alpha) (+ (+ alpha beta) 2)) 1) 2))