\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.4714840476837656 \cdot 10^{148}:\\
\;\;\;\;\frac{e^{\log \left(\mathsf{fma}\left(\frac{\frac{\alpha + \beta}{1}}{1}, \frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}, 1\right)\right)}}{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 r105744 = alpha;
double r105745 = beta;
double r105746 = r105744 + r105745;
double r105747 = r105745 - r105744;
double r105748 = r105746 * r105747;
double r105749 = 2.0;
double r105750 = i;
double r105751 = r105749 * r105750;
double r105752 = r105746 + r105751;
double r105753 = r105748 / r105752;
double r105754 = r105752 + r105749;
double r105755 = r105753 / r105754;
double r105756 = 1.0;
double r105757 = r105755 + r105756;
double r105758 = r105757 / r105749;
return r105758;
}
double f(double alpha, double beta, double i) {
double r105759 = alpha;
double r105760 = 1.4714840476837656e+148;
bool r105761 = r105759 <= r105760;
double r105762 = beta;
double r105763 = r105759 + r105762;
double r105764 = 1.0;
double r105765 = r105763 / r105764;
double r105766 = r105765 / r105764;
double r105767 = r105762 - r105759;
double r105768 = 2.0;
double r105769 = i;
double r105770 = r105768 * r105769;
double r105771 = r105763 + r105770;
double r105772 = r105767 / r105771;
double r105773 = r105771 + r105768;
double r105774 = r105772 / r105773;
double r105775 = 1.0;
double r105776 = fma(r105766, r105774, r105775);
double r105777 = log(r105776);
double r105778 = exp(r105777);
double r105779 = r105778 / r105768;
double r105780 = r105764 / r105759;
double r105781 = 8.0;
double r105782 = 3.0;
double r105783 = pow(r105759, r105782);
double r105784 = r105764 / r105783;
double r105785 = r105781 * r105784;
double r105786 = 4.0;
double r105787 = 2.0;
double r105788 = pow(r105759, r105787);
double r105789 = r105764 / r105788;
double r105790 = r105786 * r105789;
double r105791 = r105785 - r105790;
double r105792 = fma(r105768, r105780, r105791);
double r105793 = r105792 / r105768;
double r105794 = r105761 ? r105779 : r105793;
return r105794;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 1.4714840476837656e+148Initial program 15.8
rmApplied *-un-lft-identity15.8
Applied *-un-lft-identity15.8
Applied times-frac4.9
Applied times-frac4.9
Applied fma-def4.8
rmApplied add-exp-log4.9
if 1.4714840476837656e+148 < alpha Initial program 63.4
Taylor expanded around inf 42.7
Simplified42.7
Final simplification11.5
herbie shell --seed 2020057 +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))