\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 1.5371929371909745 \cdot 10^{209}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\frac{\frac{\alpha + \beta}{\sqrt{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2}}}{\sqrt{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2}}, \frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}, 1\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{2}{\alpha} + \left(\frac{8}{{\alpha}^{3}} - \frac{4}{\alpha \cdot \alpha}\right)}{2}\\
\end{array}double f(double alpha, double beta, double i) {
double r156700 = alpha;
double r156701 = beta;
double r156702 = r156700 + r156701;
double r156703 = r156701 - r156700;
double r156704 = r156702 * r156703;
double r156705 = 2.0;
double r156706 = i;
double r156707 = r156705 * r156706;
double r156708 = r156702 + r156707;
double r156709 = r156704 / r156708;
double r156710 = r156708 + r156705;
double r156711 = r156709 / r156710;
double r156712 = 1.0;
double r156713 = r156711 + r156712;
double r156714 = r156713 / r156705;
return r156714;
}
double f(double alpha, double beta, double i) {
double r156715 = alpha;
double r156716 = 1.5371929371909745e+209;
bool r156717 = r156715 <= r156716;
double r156718 = beta;
double r156719 = r156715 + r156718;
double r156720 = 2.0;
double r156721 = i;
double r156722 = fma(r156720, r156721, r156719);
double r156723 = r156722 + r156720;
double r156724 = sqrt(r156723);
double r156725 = r156719 / r156724;
double r156726 = r156725 / r156724;
double r156727 = r156718 - r156715;
double r156728 = r156727 / r156722;
double r156729 = 1.0;
double r156730 = fma(r156726, r156728, r156729);
double r156731 = r156730 / r156720;
double r156732 = r156720 / r156715;
double r156733 = 8.0;
double r156734 = 3.0;
double r156735 = pow(r156715, r156734);
double r156736 = r156733 / r156735;
double r156737 = 4.0;
double r156738 = r156715 * r156715;
double r156739 = r156737 / r156738;
double r156740 = r156736 - r156739;
double r156741 = r156732 + r156740;
double r156742 = r156741 / r156720;
double r156743 = r156717 ? r156731 : r156742;
return r156743;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 1.5371929371909745e+209Initial program 18.9
Simplified7.4
rmApplied add-sqr-sqrt7.4
Applied associate-/r*7.4
if 1.5371929371909745e+209 < alpha Initial program 64.0
Simplified50.3
rmApplied add-sqr-sqrt50.9
Applied associate-/r*50.9
Taylor expanded around inf 40.5
Simplified40.5
Final simplification11.0
herbie shell --seed 2020046 +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))