\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}\begin{array}{l}
\mathbf{if}\;\alpha \le 2.93339560295959963 \cdot 10^{31}:\\
\;\;\;\;\frac{\left(\frac{\beta}{\left(\alpha + \beta\right) + 2} - \mathsf{fma}\left(\frac{\alpha}{\left(\alpha + \beta\right) \cdot \left(\alpha + \beta\right) - 2 \cdot 2}, \left(\alpha + \beta\right) - 2, -1 \cdot 1\right)\right) - \mathsf{fma}\left(-1, 1, 1 \cdot 1\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(\frac{\sqrt[3]{\beta} \cdot \sqrt[3]{\beta}}{\sqrt[3]{\left(\alpha + \beta\right) + 2} \cdot \sqrt[3]{\left(\alpha + \beta\right) + 2}} \cdot \frac{\sqrt[3]{\beta}}{\sqrt[3]{\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)\right) + \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right) \cdot \left(\left(-1\right) + 1\right)}{2}\\
\end{array}double f(double alpha, double beta) {
double r71678 = beta;
double r71679 = alpha;
double r71680 = r71678 - r71679;
double r71681 = r71679 + r71678;
double r71682 = 2.0;
double r71683 = r71681 + r71682;
double r71684 = r71680 / r71683;
double r71685 = 1.0;
double r71686 = r71684 + r71685;
double r71687 = r71686 / r71682;
return r71687;
}
double f(double alpha, double beta) {
double r71688 = alpha;
double r71689 = 2.9333956029595996e+31;
bool r71690 = r71688 <= r71689;
double r71691 = beta;
double r71692 = r71688 + r71691;
double r71693 = 2.0;
double r71694 = r71692 + r71693;
double r71695 = r71691 / r71694;
double r71696 = r71692 * r71692;
double r71697 = r71693 * r71693;
double r71698 = r71696 - r71697;
double r71699 = r71688 / r71698;
double r71700 = r71692 - r71693;
double r71701 = 1.0;
double r71702 = 1.0;
double r71703 = r71701 * r71702;
double r71704 = -r71703;
double r71705 = fma(r71699, r71700, r71704);
double r71706 = r71695 - r71705;
double r71707 = -r71701;
double r71708 = fma(r71707, r71702, r71703);
double r71709 = r71706 - r71708;
double r71710 = r71709 / r71693;
double r71711 = cbrt(r71691);
double r71712 = r71711 * r71711;
double r71713 = cbrt(r71694);
double r71714 = r71713 * r71713;
double r71715 = r71712 / r71714;
double r71716 = r71711 / r71713;
double r71717 = r71715 * r71716;
double r71718 = 4.0;
double r71719 = 2.0;
double r71720 = pow(r71688, r71719);
double r71721 = r71702 / r71720;
double r71722 = r71702 / r71688;
double r71723 = 8.0;
double r71724 = 3.0;
double r71725 = pow(r71688, r71724);
double r71726 = r71702 / r71725;
double r71727 = r71723 * r71726;
double r71728 = fma(r71693, r71722, r71727);
double r71729 = -r71728;
double r71730 = fma(r71718, r71721, r71729);
double r71731 = r71717 - r71730;
double r71732 = r71688 / r71694;
double r71733 = r71732 - r71701;
double r71734 = -r71702;
double r71735 = r71734 + r71702;
double r71736 = r71733 * r71735;
double r71737 = r71731 + r71736;
double r71738 = r71737 / r71693;
double r71739 = r71690 ? r71710 : r71738;
return r71739;
}



Bits error versus alpha



Bits error versus beta
if alpha < 2.9333956029595996e+31Initial program 1.5
rmApplied div-sub1.5
Applied associate-+l-1.5
rmApplied *-un-lft-identity1.5
Applied flip-+1.5
Applied associate-/r/1.5
Applied prod-diff1.5
Applied associate--r+1.5
if 2.9333956029595996e+31 < alpha Initial program 51.0
rmApplied div-sub51.0
Applied associate-+l-49.1
rmApplied add-cube-cbrt49.2
Applied add-cube-cbrt49.3
Applied add-cube-cbrt49.2
Applied times-frac49.2
Applied prod-diff49.2
Simplified49.2
Simplified49.2
Taylor expanded around inf 19.0
Simplified19.0
Final simplification6.7
herbie shell --seed 2020057 +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))