\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}\begin{array}{l}
\mathbf{if}\;\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} \le -1:\\
\;\;\;\;\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}\\
\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\sqrt[3]{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2}} \cdot \sqrt[3]{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2}}, \sqrt[3]{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2}}, 1\right)}{2}\\
\end{array}double f(double alpha, double beta) {
double r103278 = beta;
double r103279 = alpha;
double r103280 = r103278 - r103279;
double r103281 = r103279 + r103278;
double r103282 = 2.0;
double r103283 = r103281 + r103282;
double r103284 = r103280 / r103283;
double r103285 = 1.0;
double r103286 = r103284 + r103285;
double r103287 = r103286 / r103282;
return r103287;
}
double f(double alpha, double beta) {
double r103288 = beta;
double r103289 = alpha;
double r103290 = r103288 - r103289;
double r103291 = r103289 + r103288;
double r103292 = 2.0;
double r103293 = r103291 + r103292;
double r103294 = r103290 / r103293;
double r103295 = -1.0;
bool r103296 = r103294 <= r103295;
double r103297 = r103288 / r103293;
double r103298 = 4.0;
double r103299 = 1.0;
double r103300 = 2.0;
double r103301 = pow(r103289, r103300);
double r103302 = r103299 / r103301;
double r103303 = r103299 / r103289;
double r103304 = 8.0;
double r103305 = 3.0;
double r103306 = pow(r103289, r103305);
double r103307 = r103299 / r103306;
double r103308 = r103304 * r103307;
double r103309 = fma(r103292, r103303, r103308);
double r103310 = -r103309;
double r103311 = fma(r103298, r103302, r103310);
double r103312 = r103297 - r103311;
double r103313 = r103312 / r103292;
double r103314 = cbrt(r103294);
double r103315 = r103314 * r103314;
double r103316 = 1.0;
double r103317 = fma(r103315, r103314, r103316);
double r103318 = r103317 / r103292;
double r103319 = r103296 ? r103313 : r103318;
return r103319;
}



Bits error versus alpha



Bits error versus beta
if (/ (- beta alpha) (+ (+ alpha beta) 2.0)) < -1.0Initial program 60.6
rmApplied div-sub60.6
Applied associate-+l-58.7
Taylor expanded around inf 11.0
Simplified11.0
if -1.0 < (/ (- beta alpha) (+ (+ alpha beta) 2.0)) Initial program 0.6
rmApplied add-cube-cbrt0.7
Applied fma-def0.7
Final simplification3.5
herbie shell --seed 2020036 +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))