\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 -0.9999999999999637:\\
\;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\left(\frac{4.0}{\alpha \cdot \alpha} - \frac{8.0}{\left(\alpha \cdot \alpha\right) \cdot \alpha}\right) - \frac{2.0}{\alpha}\right)}{2.0}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \mathsf{fma}\left(\alpha, \frac{1}{\left(\alpha + \beta\right) + 2.0}, -1.0\right)}{2.0}\\
\end{array}double f(double alpha, double beta) {
double r1715559 = beta;
double r1715560 = alpha;
double r1715561 = r1715559 - r1715560;
double r1715562 = r1715560 + r1715559;
double r1715563 = 2.0;
double r1715564 = r1715562 + r1715563;
double r1715565 = r1715561 / r1715564;
double r1715566 = 1.0;
double r1715567 = r1715565 + r1715566;
double r1715568 = r1715567 / r1715563;
return r1715568;
}
double f(double alpha, double beta) {
double r1715569 = beta;
double r1715570 = alpha;
double r1715571 = r1715569 - r1715570;
double r1715572 = r1715570 + r1715569;
double r1715573 = 2.0;
double r1715574 = r1715572 + r1715573;
double r1715575 = r1715571 / r1715574;
double r1715576 = -0.9999999999999637;
bool r1715577 = r1715575 <= r1715576;
double r1715578 = r1715569 / r1715574;
double r1715579 = 4.0;
double r1715580 = r1715570 * r1715570;
double r1715581 = r1715579 / r1715580;
double r1715582 = 8.0;
double r1715583 = r1715580 * r1715570;
double r1715584 = r1715582 / r1715583;
double r1715585 = r1715581 - r1715584;
double r1715586 = r1715573 / r1715570;
double r1715587 = r1715585 - r1715586;
double r1715588 = r1715578 - r1715587;
double r1715589 = r1715588 / r1715573;
double r1715590 = 1.0;
double r1715591 = r1715590 / r1715574;
double r1715592 = 1.0;
double r1715593 = -r1715592;
double r1715594 = fma(r1715570, r1715591, r1715593);
double r1715595 = r1715578 - r1715594;
double r1715596 = r1715595 / r1715573;
double r1715597 = r1715577 ? r1715589 : r1715596;
return r1715597;
}



Bits error versus alpha



Bits error versus beta
if (/ (- beta alpha) (+ (+ alpha beta) 2.0)) < -0.9999999999999637Initial program 60.4
rmApplied div-sub60.4
Applied associate-+l-58.7
Taylor expanded around inf 10.6
Simplified10.6
if -0.9999999999999637 < (/ (- beta alpha) (+ (+ alpha beta) 2.0)) Initial program 0.4
rmApplied div-sub0.4
Applied associate-+l-0.4
rmApplied div-inv0.4
Applied fma-neg0.4
Final simplification3.0
herbie shell --seed 2019153 +o rules:numerics
(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))