\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.5322107907580335 \cdot 10^{138}:\\
\;\;\;\;\frac{\sqrt[3]{{\left(\mathsf{fma}\left(\alpha + \beta, \frac{\sqrt[3]{{\left(\frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \alpha + \beta\right)}\right)}^{3}}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}, 1\right)\right)}^{3}}}{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 r99897 = alpha;
double r99898 = beta;
double r99899 = r99897 + r99898;
double r99900 = r99898 - r99897;
double r99901 = r99899 * r99900;
double r99902 = 2.0;
double r99903 = i;
double r99904 = r99902 * r99903;
double r99905 = r99899 + r99904;
double r99906 = r99901 / r99905;
double r99907 = r99905 + r99902;
double r99908 = r99906 / r99907;
double r99909 = 1.0;
double r99910 = r99908 + r99909;
double r99911 = r99910 / r99902;
return r99911;
}
double f(double alpha, double beta, double i) {
double r99912 = alpha;
double r99913 = 1.5322107907580335e+138;
bool r99914 = r99912 <= r99913;
double r99915 = beta;
double r99916 = r99912 + r99915;
double r99917 = r99915 - r99912;
double r99918 = i;
double r99919 = 2.0;
double r99920 = fma(r99918, r99919, r99916);
double r99921 = r99917 / r99920;
double r99922 = 3.0;
double r99923 = pow(r99921, r99922);
double r99924 = cbrt(r99923);
double r99925 = r99919 * r99918;
double r99926 = r99916 + r99925;
double r99927 = r99926 + r99919;
double r99928 = r99924 / r99927;
double r99929 = 1.0;
double r99930 = fma(r99916, r99928, r99929);
double r99931 = pow(r99930, r99922);
double r99932 = cbrt(r99931);
double r99933 = r99932 / r99919;
double r99934 = 4.0;
double r99935 = -r99934;
double r99936 = 1.0;
double r99937 = 2.0;
double r99938 = pow(r99912, r99937);
double r99939 = r99936 / r99938;
double r99940 = 8.0;
double r99941 = pow(r99912, r99922);
double r99942 = r99936 / r99941;
double r99943 = r99919 / r99912;
double r99944 = fma(r99940, r99942, r99943);
double r99945 = fma(r99935, r99939, r99944);
double r99946 = r99945 / r99919;
double r99947 = r99914 ? r99933 : r99946;
return r99947;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 1.5322107907580335e+138Initial program 15.5
rmApplied *-un-lft-identity15.5
Applied *-un-lft-identity15.5
Applied times-frac5.2
Applied times-frac5.2
Applied fma-def5.1
rmApplied add-cbrt-cube19.5
Applied add-cbrt-cube24.7
Applied cbrt-undiv24.7
Simplified5.1
rmApplied add-cbrt-cube5.2
Simplified5.2
if 1.5322107907580335e+138 < alpha Initial program 62.5
rmApplied add-sqr-sqrt62.5
Applied *-un-lft-identity62.5
Applied times-frac47.4
Applied times-frac47.3
Simplified47.3
Simplified47.4
Taylor expanded around inf 40.8
Simplified40.8
Final simplification11.6
herbie shell --seed 2020062 +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))