\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.23950982129780022 \cdot 10^{89}:\\
\;\;\;\;\frac{\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)}{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 r194988 = alpha;
double r194989 = beta;
double r194990 = r194988 + r194989;
double r194991 = r194989 - r194988;
double r194992 = r194990 * r194991;
double r194993 = 2.0;
double r194994 = i;
double r194995 = r194993 * r194994;
double r194996 = r194990 + r194995;
double r194997 = r194992 / r194996;
double r194998 = r194996 + r194993;
double r194999 = r194997 / r194998;
double r195000 = 1.0;
double r195001 = r194999 + r195000;
double r195002 = r195001 / r194993;
return r195002;
}
double f(double alpha, double beta, double i) {
double r195003 = alpha;
double r195004 = 1.2395098212978002e+89;
bool r195005 = r195003 <= r195004;
double r195006 = 1.0;
double r195007 = i;
double r195008 = 2.0;
double r195009 = beta;
double r195010 = r195003 + r195009;
double r195011 = fma(r195007, r195008, r195010);
double r195012 = r195011 / r195010;
double r195013 = r195009 - r195003;
double r195014 = r195012 / r195013;
double r195015 = r195006 / r195014;
double r195016 = r195008 * r195007;
double r195017 = r195010 + r195016;
double r195018 = r195017 + r195008;
double r195019 = r195006 / r195018;
double r195020 = 1.0;
double r195021 = fma(r195015, r195019, r195020);
double r195022 = r195021 / r195008;
double r195023 = 4.0;
double r195024 = -r195023;
double r195025 = 2.0;
double r195026 = pow(r195003, r195025);
double r195027 = r195006 / r195026;
double r195028 = 8.0;
double r195029 = 3.0;
double r195030 = pow(r195003, r195029);
double r195031 = r195006 / r195030;
double r195032 = r195008 / r195003;
double r195033 = fma(r195028, r195031, r195032);
double r195034 = fma(r195024, r195027, r195033);
double r195035 = r195034 / r195008;
double r195036 = r195005 ? r195022 : r195035;
return r195036;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 1.2395098212978002e+89Initial program 13.7
rmApplied clear-num13.7
Simplified2.7
rmApplied div-inv2.7
Applied fma-def2.7
if 1.2395098212978002e+89 < alpha Initial program 57.6
rmApplied *-un-lft-identity57.6
Applied *-un-lft-identity57.6
Applied times-frac42.9
Applied times-frac42.9
Applied fma-def43.4
Taylor expanded around inf 41.0
Simplified41.0
Final simplification11.9
herbie shell --seed 2020034 +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))