\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 4.19509086812250328832562519981486685202 \cdot 10^{103}:\\
\;\;\;\;\frac{\sqrt[3]{{\left(\sqrt[3]{{\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)}^{3}}\right)}^{3}}}{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 r152893 = alpha;
double r152894 = beta;
double r152895 = r152893 + r152894;
double r152896 = r152894 - r152893;
double r152897 = r152895 * r152896;
double r152898 = 2.0;
double r152899 = i;
double r152900 = r152898 * r152899;
double r152901 = r152895 + r152900;
double r152902 = r152897 / r152901;
double r152903 = r152901 + r152898;
double r152904 = r152902 / r152903;
double r152905 = 1.0;
double r152906 = r152904 + r152905;
double r152907 = r152906 / r152898;
return r152907;
}
double f(double alpha, double beta, double i) {
double r152908 = alpha;
double r152909 = 4.195090868122503e+103;
bool r152910 = r152908 <= r152909;
double r152911 = 1.0;
double r152912 = i;
double r152913 = 2.0;
double r152914 = beta;
double r152915 = r152908 + r152914;
double r152916 = fma(r152912, r152913, r152915);
double r152917 = r152916 / r152915;
double r152918 = r152914 - r152908;
double r152919 = r152917 / r152918;
double r152920 = r152911 / r152919;
double r152921 = r152913 * r152912;
double r152922 = r152915 + r152921;
double r152923 = r152922 + r152913;
double r152924 = r152911 / r152923;
double r152925 = 1.0;
double r152926 = fma(r152920, r152924, r152925);
double r152927 = 3.0;
double r152928 = pow(r152926, r152927);
double r152929 = cbrt(r152928);
double r152930 = pow(r152929, r152927);
double r152931 = cbrt(r152930);
double r152932 = r152931 / r152913;
double r152933 = r152911 / r152908;
double r152934 = 8.0;
double r152935 = pow(r152908, r152927);
double r152936 = r152911 / r152935;
double r152937 = r152934 * r152936;
double r152938 = 4.0;
double r152939 = 2.0;
double r152940 = pow(r152908, r152939);
double r152941 = r152911 / r152940;
double r152942 = r152938 * r152941;
double r152943 = r152937 - r152942;
double r152944 = fma(r152913, r152933, r152943);
double r152945 = r152944 / r152913;
double r152946 = r152910 ? r152932 : r152945;
return r152946;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
if alpha < 4.195090868122503e+103Initial program 13.8
rmApplied clear-num13.8
Simplified3.2
rmApplied div-inv3.2
Applied fma-def3.2
rmApplied add-cbrt-cube3.2
Simplified3.2
rmApplied add-cbrt-cube3.2
Simplified3.2
if 4.195090868122503e+103 < alpha Initial program 59.3
Taylor expanded around inf 39.6
Simplified39.6
Final simplification11.4
herbie shell --seed 2020001 +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))