\frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2} + 1}{2}\begin{array}{l}
\mathbf{if}\;\alpha \le 4.19509086812250328832562519981486685202 \cdot 10^{103}:\\
\;\;\;\;\frac{\sqrt[3]{{\left(\sqrt[3]{{\left(\mathsf{fma}\left(\frac{1}{\frac{\frac{\mathsf{fma}\left(i, 2, \alpha + \beta\right)}{\alpha + \beta}}{\beta - \alpha}}, \frac{1}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}, 1\right)\right)}^{3}}\right)}^{3}}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left(2, \frac{1}{\alpha}, 8 \cdot \frac{1}{{\alpha}^{3}} - 4 \cdot \frac{1}{{\alpha}^{2}}\right)}{2}\\
\end{array}double f(double alpha, double beta, double i) {
double r135599 = alpha;
double r135600 = beta;
double r135601 = r135599 + r135600;
double r135602 = r135600 - r135599;
double r135603 = r135601 * r135602;
double r135604 = 2.0;
double r135605 = i;
double r135606 = r135604 * r135605;
double r135607 = r135601 + r135606;
double r135608 = r135603 / r135607;
double r135609 = r135607 + r135604;
double r135610 = r135608 / r135609;
double r135611 = 1.0;
double r135612 = r135610 + r135611;
double r135613 = r135612 / r135604;
return r135613;
}
double f(double alpha, double beta, double i) {
double r135614 = alpha;
double r135615 = 4.195090868122503e+103;
bool r135616 = r135614 <= r135615;
double r135617 = 1.0;
double r135618 = i;
double r135619 = 2.0;
double r135620 = beta;
double r135621 = r135614 + r135620;
double r135622 = fma(r135618, r135619, r135621);
double r135623 = r135622 / r135621;
double r135624 = r135620 - r135614;
double r135625 = r135623 / r135624;
double r135626 = r135617 / r135625;
double r135627 = r135619 * r135618;
double r135628 = r135621 + r135627;
double r135629 = r135628 + r135619;
double r135630 = r135617 / r135629;
double r135631 = 1.0;
double r135632 = fma(r135626, r135630, r135631);
double r135633 = 3.0;
double r135634 = pow(r135632, r135633);
double r135635 = cbrt(r135634);
double r135636 = pow(r135635, r135633);
double r135637 = cbrt(r135636);
double r135638 = r135637 / r135619;
double r135639 = r135617 / r135614;
double r135640 = 8.0;
double r135641 = pow(r135614, r135633);
double r135642 = r135617 / r135641;
double r135643 = r135640 * r135642;
double r135644 = 4.0;
double r135645 = 2.0;
double r135646 = pow(r135614, r135645);
double r135647 = r135617 / r135646;
double r135648 = r135644 * r135647;
double r135649 = r135643 - r135648;
double r135650 = fma(r135619, r135639, r135649);
double r135651 = r135650 / r135619;
double r135652 = r135616 ? r135638 : r135651;
return r135652;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 4.195090868122503e+103Initial program 13.8
rmApplied clear-num13.8
Simplified3.2
rmApplied div-inv3.2
Applied fma-def3.2
rmApplied add-cbrt-cube3.2
Simplified3.2
rmApplied add-cbrt-cube3.2
Simplified3.2
if 4.195090868122503e+103 < alpha Initial program 59.3
Taylor expanded around inf 39.6
Simplified39.6
Final simplification11.4
herbie shell --seed 2020001 +o rules:numerics
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/2"
:precision binary64
:pre (and (> alpha -1) (> beta -1) (> i 0.0))
(/ (+ (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2 i))) (+ (+ (+ alpha beta) (* 2 i)) 2)) 1) 2))