\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.0} + 1.0}{2.0}\begin{array}{l}
\mathbf{if}\;\alpha \le 1.6640402697170518 \cdot 10^{+238}:\\
\;\;\;\;\frac{\log \left(e^{\frac{\left(\alpha + \beta\right) \cdot \frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}{2.0 + \left(\left(\alpha + \beta\right) + 2 \cdot i\right)} + 1.0}\right)}{2.0}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{8.0}{\alpha} - 4.0}{\alpha \cdot \alpha} + \frac{2.0}{\alpha}}{2.0}\\
\end{array}double f(double alpha, double beta, double i) {
double r20469874 = alpha;
double r20469875 = beta;
double r20469876 = r20469874 + r20469875;
double r20469877 = r20469875 - r20469874;
double r20469878 = r20469876 * r20469877;
double r20469879 = 2.0;
double r20469880 = i;
double r20469881 = r20469879 * r20469880;
double r20469882 = r20469876 + r20469881;
double r20469883 = r20469878 / r20469882;
double r20469884 = 2.0;
double r20469885 = r20469882 + r20469884;
double r20469886 = r20469883 / r20469885;
double r20469887 = 1.0;
double r20469888 = r20469886 + r20469887;
double r20469889 = r20469888 / r20469884;
return r20469889;
}
double f(double alpha, double beta, double i) {
double r20469890 = alpha;
double r20469891 = 1.6640402697170518e+238;
bool r20469892 = r20469890 <= r20469891;
double r20469893 = beta;
double r20469894 = r20469890 + r20469893;
double r20469895 = r20469893 - r20469890;
double r20469896 = 2.0;
double r20469897 = i;
double r20469898 = r20469896 * r20469897;
double r20469899 = r20469894 + r20469898;
double r20469900 = r20469895 / r20469899;
double r20469901 = r20469894 * r20469900;
double r20469902 = 2.0;
double r20469903 = r20469902 + r20469899;
double r20469904 = r20469901 / r20469903;
double r20469905 = 1.0;
double r20469906 = r20469904 + r20469905;
double r20469907 = exp(r20469906);
double r20469908 = log(r20469907);
double r20469909 = r20469908 / r20469902;
double r20469910 = 8.0;
double r20469911 = r20469910 / r20469890;
double r20469912 = 4.0;
double r20469913 = r20469911 - r20469912;
double r20469914 = r20469890 * r20469890;
double r20469915 = r20469913 / r20469914;
double r20469916 = r20469902 / r20469890;
double r20469917 = r20469915 + r20469916;
double r20469918 = r20469917 / r20469902;
double r20469919 = r20469892 ? r20469909 : r20469918;
return r20469919;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Results
if alpha < 1.6640402697170518e+238Initial program 20.3
rmApplied *-un-lft-identity20.3
Applied *-un-lft-identity20.3
Applied times-frac8.7
Applied times-frac8.7
Simplified8.7
rmApplied add-log-exp8.7
Applied add-log-exp8.7
Applied sum-log8.7
Simplified8.7
rmApplied associate-*r/8.7
if 1.6640402697170518e+238 < alpha Initial program 63.2
Taylor expanded around -inf 40.5
Simplified40.5
Final simplification11.1
herbie shell --seed 2019124
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/2"
:pre (and (> alpha -1) (> beta -1) (> i 0))
(/ (+ (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2 i))) (+ (+ (+ alpha beta) (* 2 i)) 2.0)) 1.0) 2.0))