\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 r152040 = alpha;
double r152041 = beta;
double r152042 = r152040 + r152041;
double r152043 = r152041 - r152040;
double r152044 = r152042 * r152043;
double r152045 = 2.0;
double r152046 = i;
double r152047 = r152045 * r152046;
double r152048 = r152042 + r152047;
double r152049 = r152044 / r152048;
double r152050 = r152048 + r152045;
double r152051 = r152049 / r152050;
double r152052 = 1.0;
double r152053 = r152051 + r152052;
double r152054 = r152053 / r152045;
return r152054;
}
double f(double alpha, double beta, double i) {
double r152055 = alpha;
double r152056 = 4.195090868122503e+103;
bool r152057 = r152055 <= r152056;
double r152058 = 1.0;
double r152059 = i;
double r152060 = 2.0;
double r152061 = beta;
double r152062 = r152055 + r152061;
double r152063 = fma(r152059, r152060, r152062);
double r152064 = r152063 / r152062;
double r152065 = r152061 - r152055;
double r152066 = r152064 / r152065;
double r152067 = r152058 / r152066;
double r152068 = r152060 * r152059;
double r152069 = r152062 + r152068;
double r152070 = r152069 + r152060;
double r152071 = r152058 / r152070;
double r152072 = 1.0;
double r152073 = fma(r152067, r152071, r152072);
double r152074 = 3.0;
double r152075 = pow(r152073, r152074);
double r152076 = cbrt(r152075);
double r152077 = pow(r152076, r152074);
double r152078 = cbrt(r152077);
double r152079 = r152078 / r152060;
double r152080 = r152058 / r152055;
double r152081 = 8.0;
double r152082 = pow(r152055, r152074);
double r152083 = r152058 / r152082;
double r152084 = r152081 * r152083;
double r152085 = 4.0;
double r152086 = 2.0;
double r152087 = pow(r152055, r152086);
double r152088 = r152058 / r152087;
double r152089 = r152085 * r152088;
double r152090 = r152084 - r152089;
double r152091 = fma(r152060, r152080, r152090);
double r152092 = r152091 / r152060;
double r152093 = r152057 ? r152079 : r152092;
return r152093;
}



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))