\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}\begin{array}{l}
\mathbf{if}\;\alpha \le 4.83625907357855693 \cdot 10^{29}:\\
\;\;\;\;\frac{\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\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 r115108 = beta;
double r115109 = alpha;
double r115110 = r115108 - r115109;
double r115111 = r115109 + r115108;
double r115112 = 2.0;
double r115113 = r115111 + r115112;
double r115114 = r115110 / r115113;
double r115115 = 1.0;
double r115116 = r115114 + r115115;
double r115117 = r115116 / r115112;
return r115117;
}
double f(double alpha, double beta) {
double r115118 = alpha;
double r115119 = 4.836259073578557e+29;
bool r115120 = r115118 <= r115119;
double r115121 = beta;
double r115122 = r115118 + r115121;
double r115123 = 2.0;
double r115124 = r115122 + r115123;
double r115125 = r115121 / r115124;
double r115126 = r115122 * r115122;
double r115127 = r115123 * r115123;
double r115128 = r115126 - r115127;
double r115129 = r115118 / r115128;
double r115130 = r115122 - r115123;
double r115131 = 1.0;
double r115132 = -r115131;
double r115133 = fma(r115129, r115130, r115132);
double r115134 = r115125 - r115133;
double r115135 = r115134 / r115123;
double r115136 = 4.0;
double r115137 = 1.0;
double r115138 = 2.0;
double r115139 = pow(r115118, r115138);
double r115140 = r115137 / r115139;
double r115141 = r115137 / r115118;
double r115142 = 8.0;
double r115143 = 3.0;
double r115144 = pow(r115118, r115143);
double r115145 = r115137 / r115144;
double r115146 = r115142 * r115145;
double r115147 = fma(r115123, r115141, r115146);
double r115148 = -r115147;
double r115149 = fma(r115136, r115140, r115148);
double r115150 = r115125 - r115149;
double r115151 = r115150 / r115123;
double r115152 = r115120 ? r115135 : r115151;
return r115152;
}



Bits error versus alpha



Bits error versus beta
if alpha < 4.836259073578557e+29Initial program 1.4
rmApplied div-sub1.4
Applied associate-+l-1.4
rmApplied flip-+1.4
Applied associate-/r/1.4
Applied fma-neg1.3
if 4.836259073578557e+29 < alpha Initial program 51.1
rmApplied div-sub51.0
Applied associate-+l-49.5
Taylor expanded around inf 17.6
Simplified17.6
Final simplification6.4
herbie shell --seed 2020046 +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))