\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 6.6050151834176628 \cdot 10^{79}:\\
\;\;\;\;\frac{e^{\log \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)}}{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 r186937 = alpha;
double r186938 = beta;
double r186939 = r186937 + r186938;
double r186940 = r186938 - r186937;
double r186941 = r186939 * r186940;
double r186942 = 2.0;
double r186943 = i;
double r186944 = r186942 * r186943;
double r186945 = r186939 + r186944;
double r186946 = r186941 / r186945;
double r186947 = r186945 + r186942;
double r186948 = r186946 / r186947;
double r186949 = 1.0;
double r186950 = r186948 + r186949;
double r186951 = r186950 / r186942;
return r186951;
}
double f(double alpha, double beta, double i) {
double r186952 = alpha;
double r186953 = 6.605015183417663e+79;
bool r186954 = r186952 <= r186953;
double r186955 = 1.0;
double r186956 = i;
double r186957 = 2.0;
double r186958 = beta;
double r186959 = r186952 + r186958;
double r186960 = fma(r186956, r186957, r186959);
double r186961 = r186960 / r186959;
double r186962 = r186958 - r186952;
double r186963 = r186961 / r186962;
double r186964 = r186955 / r186963;
double r186965 = r186957 * r186956;
double r186966 = r186959 + r186965;
double r186967 = r186966 + r186957;
double r186968 = r186955 / r186967;
double r186969 = 1.0;
double r186970 = fma(r186964, r186968, r186969);
double r186971 = log(r186970);
double r186972 = exp(r186971);
double r186973 = r186972 / r186957;
double r186974 = r186955 / r186952;
double r186975 = 8.0;
double r186976 = 3.0;
double r186977 = pow(r186952, r186976);
double r186978 = r186955 / r186977;
double r186979 = r186975 * r186978;
double r186980 = 4.0;
double r186981 = 2.0;
double r186982 = pow(r186952, r186981);
double r186983 = r186955 / r186982;
double r186984 = r186980 * r186983;
double r186985 = r186979 - r186984;
double r186986 = fma(r186957, r186974, r186985);
double r186987 = r186986 / r186957;
double r186988 = r186954 ? r186973 : r186987;
return r186988;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 6.605015183417663e+79Initial program 12.9
rmApplied clear-num12.9
Simplified2.2
rmApplied div-inv2.2
Applied fma-def2.1
rmApplied add-exp-log2.2
if 6.605015183417663e+79 < alpha Initial program 58.1
Taylor expanded around inf 40.0
Simplified40.0
Final simplification11.4
herbie shell --seed 2020027 +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))