\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}\begin{array}{l}
\mathbf{if}\;\alpha \le 16045536794042094:\\
\;\;\;\;\frac{e^{\log \left(\frac{\left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} + 1\right) \cdot \left(\beta - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right) \cdot \left(\left(\alpha + \beta\right) + 2\right)\right)}{\left(\left(\alpha + \beta\right) + 2\right) \cdot \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} + 1\right)}\right)}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\left(\frac{\frac{4}{\alpha}}{\alpha} + \frac{-8}{{\alpha}^{3}}\right) + \frac{-2}{\alpha}\right)}{2}\\
\end{array}double f(double alpha, double beta) {
double r157287 = beta;
double r157288 = alpha;
double r157289 = r157287 - r157288;
double r157290 = r157288 + r157287;
double r157291 = 2.0;
double r157292 = r157290 + r157291;
double r157293 = r157289 / r157292;
double r157294 = 1.0;
double r157295 = r157293 + r157294;
double r157296 = r157295 / r157291;
return r157296;
}
double f(double alpha, double beta) {
double r157297 = alpha;
double r157298 = 16045536794042094.0;
bool r157299 = r157297 <= r157298;
double r157300 = beta;
double r157301 = r157297 + r157300;
double r157302 = 2.0;
double r157303 = r157301 + r157302;
double r157304 = r157297 / r157303;
double r157305 = 1.0;
double r157306 = r157304 + r157305;
double r157307 = r157304 - r157305;
double r157308 = r157307 * r157303;
double r157309 = r157300 - r157308;
double r157310 = r157306 * r157309;
double r157311 = r157303 * r157306;
double r157312 = r157310 / r157311;
double r157313 = log(r157312);
double r157314 = exp(r157313);
double r157315 = r157314 / r157302;
double r157316 = r157300 / r157303;
double r157317 = 4.0;
double r157318 = r157317 / r157297;
double r157319 = r157318 / r157297;
double r157320 = 8.0;
double r157321 = -r157320;
double r157322 = 3.0;
double r157323 = pow(r157297, r157322);
double r157324 = r157321 / r157323;
double r157325 = r157319 + r157324;
double r157326 = -r157302;
double r157327 = r157326 / r157297;
double r157328 = r157325 + r157327;
double r157329 = r157316 - r157328;
double r157330 = r157329 / r157302;
double r157331 = r157299 ? r157315 : r157330;
return r157331;
}



Bits error versus alpha



Bits error versus beta
Results
if alpha < 16045536794042094.0Initial program 0.4
rmApplied div-sub0.4
Applied associate-+l-0.4
rmApplied add-exp-log0.4
rmApplied flip--0.4
Applied frac-sub0.5
Simplified0.4
if 16045536794042094.0 < alpha Initial program 51.0
rmApplied div-sub51.0
Applied associate-+l-49.4
Taylor expanded around inf 18.0
Simplified18.0
Final simplification5.9
herbie shell --seed 2020039
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/1"
:precision binary64
:pre (and (> alpha -1) (> beta -1))
(/ (+ (/ (- beta alpha) (+ (+ alpha beta) 2)) 1) 2))