\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 5.849296461317042084954782375689309523104 \cdot 10^{141}:\\
\;\;\;\;\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(-4, \frac{1}{{\alpha}^{2}}, \mathsf{fma}\left(8, \frac{1}{{\alpha}^{3}}, \frac{2}{\alpha}\right)\right)}{2}\\
\end{array}double f(double alpha, double beta, double i) {
double r184883 = alpha;
double r184884 = beta;
double r184885 = r184883 + r184884;
double r184886 = r184884 - r184883;
double r184887 = r184885 * r184886;
double r184888 = 2.0;
double r184889 = i;
double r184890 = r184888 * r184889;
double r184891 = r184885 + r184890;
double r184892 = r184887 / r184891;
double r184893 = r184891 + r184888;
double r184894 = r184892 / r184893;
double r184895 = 1.0;
double r184896 = r184894 + r184895;
double r184897 = r184896 / r184888;
return r184897;
}
double f(double alpha, double beta, double i) {
double r184898 = alpha;
double r184899 = 5.849296461317042e+141;
bool r184900 = r184898 <= r184899;
double r184901 = beta;
double r184902 = r184898 + r184901;
double r184903 = 1.0;
double r184904 = r184902 / r184903;
double r184905 = r184904 / r184903;
double r184906 = r184901 - r184898;
double r184907 = 2.0;
double r184908 = i;
double r184909 = r184907 * r184908;
double r184910 = r184902 + r184909;
double r184911 = r184906 / r184910;
double r184912 = r184910 + r184907;
double r184913 = r184911 / r184912;
double r184914 = 1.0;
double r184915 = fma(r184905, r184913, r184914);
double r184916 = log(r184915);
double r184917 = exp(r184916);
double r184918 = r184917 / r184907;
double r184919 = 4.0;
double r184920 = -r184919;
double r184921 = 2.0;
double r184922 = pow(r184898, r184921);
double r184923 = r184903 / r184922;
double r184924 = 8.0;
double r184925 = 3.0;
double r184926 = pow(r184898, r184925);
double r184927 = r184903 / r184926;
double r184928 = r184907 / r184898;
double r184929 = fma(r184924, r184927, r184928);
double r184930 = fma(r184920, r184923, r184929);
double r184931 = r184930 / r184907;
double r184932 = r184900 ? r184918 : r184931;
return r184932;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 5.849296461317042e+141Initial program 15.4
rmApplied *-un-lft-identity15.4
Applied *-un-lft-identity15.4
Applied times-frac4.8
Applied times-frac4.8
Applied fma-def4.7
rmApplied add-exp-log4.8
if 5.849296461317042e+141 < alpha Initial program 62.6
rmApplied *-un-lft-identity62.6
Applied *-un-lft-identity62.6
Applied times-frac46.8
Applied times-frac46.8
Applied fma-def47.6
Taylor expanded around inf 41.8
Simplified41.8
Final simplification11.7
herbie shell --seed 2019352 +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))