\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 r151431 = beta;
double r151432 = alpha;
double r151433 = r151431 - r151432;
double r151434 = r151432 + r151431;
double r151435 = 2.0;
double r151436 = r151434 + r151435;
double r151437 = r151433 / r151436;
double r151438 = 1.0;
double r151439 = r151437 + r151438;
double r151440 = r151439 / r151435;
return r151440;
}
double f(double alpha, double beta) {
double r151441 = beta;
double r151442 = alpha;
double r151443 = r151441 - r151442;
double r151444 = r151442 + r151441;
double r151445 = 2.0;
double r151446 = r151444 + r151445;
double r151447 = r151443 / r151446;
double r151448 = -1.0;
bool r151449 = r151447 <= r151448;
double r151450 = r151441 / r151446;
double r151451 = 4.0;
double r151452 = 1.0;
double r151453 = 2.0;
double r151454 = pow(r151442, r151453);
double r151455 = r151452 / r151454;
double r151456 = r151452 / r151442;
double r151457 = 8.0;
double r151458 = 3.0;
double r151459 = pow(r151442, r151458);
double r151460 = r151452 / r151459;
double r151461 = r151457 * r151460;
double r151462 = fma(r151445, r151456, r151461);
double r151463 = -r151462;
double r151464 = fma(r151451, r151455, r151463);
double r151465 = r151450 - r151464;
double r151466 = r151465 / r151445;
double r151467 = cbrt(r151447);
double r151468 = r151467 * r151467;
double r151469 = 1.0;
double r151470 = fma(r151468, r151467, r151469);
double r151471 = r151470 / r151445;
double r151472 = r151449 ? r151466 : r151471;
return r151472;
}



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))