\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}\begin{array}{l}
\mathbf{if}\;\alpha \le 12052311324865314.0:\\
\;\;\;\;\frac{\mathsf{fma}\left(\beta - \alpha, \frac{1}{2.0 + \left(\beta + \alpha\right)}, 1.0\right)}{2.0}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \left(\left(\frac{4.0}{\alpha \cdot \alpha} - \frac{2.0}{\alpha}\right) - \frac{8.0}{\left(\alpha \cdot \alpha\right) \cdot \alpha}\right)}{2.0}\\
\end{array}double f(double alpha, double beta) {
double r3234257 = beta;
double r3234258 = alpha;
double r3234259 = r3234257 - r3234258;
double r3234260 = r3234258 + r3234257;
double r3234261 = 2.0;
double r3234262 = r3234260 + r3234261;
double r3234263 = r3234259 / r3234262;
double r3234264 = 1.0;
double r3234265 = r3234263 + r3234264;
double r3234266 = r3234265 / r3234261;
return r3234266;
}
double f(double alpha, double beta) {
double r3234267 = alpha;
double r3234268 = 12052311324865314.0;
bool r3234269 = r3234267 <= r3234268;
double r3234270 = beta;
double r3234271 = r3234270 - r3234267;
double r3234272 = 1.0;
double r3234273 = 2.0;
double r3234274 = r3234270 + r3234267;
double r3234275 = r3234273 + r3234274;
double r3234276 = r3234272 / r3234275;
double r3234277 = 1.0;
double r3234278 = fma(r3234271, r3234276, r3234277);
double r3234279 = r3234278 / r3234273;
double r3234280 = r3234270 / r3234275;
double r3234281 = 4.0;
double r3234282 = r3234267 * r3234267;
double r3234283 = r3234281 / r3234282;
double r3234284 = r3234273 / r3234267;
double r3234285 = r3234283 - r3234284;
double r3234286 = 8.0;
double r3234287 = r3234282 * r3234267;
double r3234288 = r3234286 / r3234287;
double r3234289 = r3234285 - r3234288;
double r3234290 = r3234280 - r3234289;
double r3234291 = r3234290 / r3234273;
double r3234292 = r3234269 ? r3234279 : r3234291;
return r3234292;
}



Bits error versus alpha



Bits error versus beta
if alpha < 12052311324865314.0Initial program 0.4
rmApplied div-inv0.4
Applied fma-def0.4
if 12052311324865314.0 < alpha Initial program 50.3
rmApplied div-sub50.3
Applied associate-+l-48.8
rmApplied add-log-exp48.8
Taylor expanded around inf 18.0
Simplified18.0
Final simplification6.1
herbie shell --seed 2019146 +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))