\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 2.7164806556976032 \cdot 10^{70}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\frac{\frac{\alpha + \beta}{1}}{1}, \frac{\frac{\sqrt[3]{\beta - \alpha} \cdot \sqrt[3]{\beta - \alpha}}{\sqrt[3]{\left(\alpha + \beta\right) + 2 \cdot i} \cdot \sqrt[3]{\left(\alpha + \beta\right) + 2 \cdot i}} \cdot \frac{\sqrt[3]{\beta - \alpha}}{\sqrt[3]{\left(\alpha + \beta\right) + 2 \cdot i}}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}, 1\right)}{2}\\
\mathbf{elif}\;\alpha \le 2.7979297090535237 \cdot 10^{163}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\frac{1}{{\alpha}^{2}}, \frac{8}{\alpha} - 4, \frac{2}{\alpha}\right)}{2}\\
\mathbf{elif}\;\alpha \le 8.62053272570316647 \cdot 10^{231}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\frac{\frac{\alpha + \beta}{1}}{1}, \frac{\frac{\sqrt[3]{\beta - \alpha} \cdot \sqrt[3]{\beta - \alpha}}{\sqrt[3]{\left(\alpha + \beta\right) + 2 \cdot i} \cdot \sqrt[3]{\left(\alpha + \beta\right) + 2 \cdot i}} \cdot \frac{\sqrt[3]{\beta - \alpha}}{\sqrt[3]{\left(\alpha + \beta\right) + 2 \cdot i}}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}, 1\right)}{2}\\
\mathbf{elif}\;\alpha \le 4.82297065025126166 \cdot 10^{284}:\\
\;\;\;\;\frac{e^{\log 2 + \left(\mathsf{fma}\left(1, \frac{1}{\beta}, \log \left(\frac{1}{\alpha}\right)\right) - \mathsf{fma}\left(2, \frac{1}{\alpha}, \log \left(\frac{1}{\beta}\right)\right)\right)}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\frac{1}{{\alpha}^{2}}, \frac{8}{\alpha} - 4, \frac{2}{\alpha}\right)}{2}\\
\end{array}double f(double alpha, double beta, double i) {
double r108994 = alpha;
double r108995 = beta;
double r108996 = r108994 + r108995;
double r108997 = r108995 - r108994;
double r108998 = r108996 * r108997;
double r108999 = 2.0;
double r109000 = i;
double r109001 = r108999 * r109000;
double r109002 = r108996 + r109001;
double r109003 = r108998 / r109002;
double r109004 = r109002 + r108999;
double r109005 = r109003 / r109004;
double r109006 = 1.0;
double r109007 = r109005 + r109006;
double r109008 = r109007 / r108999;
return r109008;
}
double f(double alpha, double beta, double i) {
double r109009 = alpha;
double r109010 = 2.7164806556976032e+70;
bool r109011 = r109009 <= r109010;
double r109012 = beta;
double r109013 = r109009 + r109012;
double r109014 = 1.0;
double r109015 = r109013 / r109014;
double r109016 = r109015 / r109014;
double r109017 = r109012 - r109009;
double r109018 = cbrt(r109017);
double r109019 = r109018 * r109018;
double r109020 = 2.0;
double r109021 = i;
double r109022 = r109020 * r109021;
double r109023 = r109013 + r109022;
double r109024 = cbrt(r109023);
double r109025 = r109024 * r109024;
double r109026 = r109019 / r109025;
double r109027 = r109018 / r109024;
double r109028 = r109026 * r109027;
double r109029 = r109023 + r109020;
double r109030 = r109028 / r109029;
double r109031 = 1.0;
double r109032 = fma(r109016, r109030, r109031);
double r109033 = r109032 / r109020;
double r109034 = 2.7979297090535237e+163;
bool r109035 = r109009 <= r109034;
double r109036 = 2.0;
double r109037 = pow(r109009, r109036);
double r109038 = r109014 / r109037;
double r109039 = 8.0;
double r109040 = r109039 / r109009;
double r109041 = 4.0;
double r109042 = r109040 - r109041;
double r109043 = r109020 / r109009;
double r109044 = fma(r109038, r109042, r109043);
double r109045 = r109044 / r109020;
double r109046 = 8.620532725703166e+231;
bool r109047 = r109009 <= r109046;
double r109048 = 4.8229706502512617e+284;
bool r109049 = r109009 <= r109048;
double r109050 = log(r109036);
double r109051 = r109014 / r109012;
double r109052 = r109014 / r109009;
double r109053 = log(r109052);
double r109054 = fma(r109031, r109051, r109053);
double r109055 = log(r109051);
double r109056 = fma(r109020, r109052, r109055);
double r109057 = r109054 - r109056;
double r109058 = r109050 + r109057;
double r109059 = exp(r109058);
double r109060 = r109059 / r109020;
double r109061 = r109049 ? r109060 : r109045;
double r109062 = r109047 ? r109033 : r109061;
double r109063 = r109035 ? r109045 : r109062;
double r109064 = r109011 ? r109033 : r109063;
return r109064;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 2.7164806556976032e+70 or 2.7979297090535237e+163 < alpha < 8.620532725703166e+231Initial program 17.3
rmApplied *-un-lft-identity17.3
Applied *-un-lft-identity17.3
Applied times-frac5.6
Applied times-frac5.6
Applied fma-def5.6
rmApplied add-cube-cbrt5.8
Applied add-cube-cbrt5.6
Applied times-frac5.6
if 2.7164806556976032e+70 < alpha < 2.7979297090535237e+163 or 4.8229706502512617e+284 < alpha Initial program 49.4
rmApplied *-un-lft-identity49.4
Applied *-un-lft-identity49.4
Applied times-frac37.3
Applied times-frac37.2
Applied fma-def37.6
rmApplied add-cube-cbrt37.7
Applied add-cube-cbrt37.7
Applied times-frac37.7
Taylor expanded around inf 40.8
Simplified40.8
if 8.620532725703166e+231 < alpha < 4.8229706502512617e+284Initial program 64.0
rmApplied *-un-lft-identity64.0
Applied *-un-lft-identity64.0
Applied times-frac51.3
Applied times-frac51.4
Applied fma-def52.3
rmApplied add-exp-log52.9
Taylor expanded around inf 51.4
Simplified51.2
Final simplification12.7
herbie shell --seed 2020059 +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))