\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}\;\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} \le -0.999999999999999889:\\
\;\;\;\;\frac{\left(\frac{8}{{\alpha}^{3}} + \frac{2}{\alpha}\right) - \frac{4}{\alpha \cdot \alpha}}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt[3]{{\left(\frac{\alpha + \beta}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}} \cdot \frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}} + 1\right)}^{3}}}{2}\\
\end{array}double f(double alpha, double beta, double i) {
double r106853 = alpha;
double r106854 = beta;
double r106855 = r106853 + r106854;
double r106856 = r106854 - r106853;
double r106857 = r106855 * r106856;
double r106858 = 2.0;
double r106859 = i;
double r106860 = r106858 * r106859;
double r106861 = r106855 + r106860;
double r106862 = r106857 / r106861;
double r106863 = r106861 + r106858;
double r106864 = r106862 / r106863;
double r106865 = 1.0;
double r106866 = r106864 + r106865;
double r106867 = r106866 / r106858;
return r106867;
}
double f(double alpha, double beta, double i) {
double r106868 = alpha;
double r106869 = beta;
double r106870 = r106868 + r106869;
double r106871 = r106869 - r106868;
double r106872 = r106870 * r106871;
double r106873 = 2.0;
double r106874 = i;
double r106875 = r106873 * r106874;
double r106876 = r106870 + r106875;
double r106877 = r106872 / r106876;
double r106878 = r106876 + r106873;
double r106879 = r106877 / r106878;
double r106880 = -0.9999999999999999;
bool r106881 = r106879 <= r106880;
double r106882 = 8.0;
double r106883 = 3.0;
double r106884 = pow(r106868, r106883);
double r106885 = r106882 / r106884;
double r106886 = r106873 / r106868;
double r106887 = r106885 + r106886;
double r106888 = 4.0;
double r106889 = r106868 * r106868;
double r106890 = r106888 / r106889;
double r106891 = r106887 - r106890;
double r106892 = r106891 / r106873;
double r106893 = sqrt(r106878);
double r106894 = r106870 / r106893;
double r106895 = r106871 / r106876;
double r106896 = r106895 / r106893;
double r106897 = r106894 * r106896;
double r106898 = 1.0;
double r106899 = r106897 + r106898;
double r106900 = pow(r106899, r106883);
double r106901 = cbrt(r106900);
double r106902 = r106901 / r106873;
double r106903 = r106881 ? r106892 : r106902;
return r106903;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Results
if (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2.0 i))) (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)) < -0.9999999999999999Initial program 63.3
Taylor expanded around inf 32.0
Simplified32.0
if -0.9999999999999999 < (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2.0 i))) (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)) Initial program 12.6
rmApplied add-cube-cbrt12.7
Applied *-un-lft-identity12.7
Applied times-frac0.6
Applied times-frac0.6
Simplified0.6
rmApplied add-cbrt-cube0.5
Simplified0.4
rmApplied add-sqr-sqrt0.4
Applied times-frac0.4
Final simplification7.3
herbie shell --seed 2020042
(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))