\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.244272110236542990854135182922651770205 \cdot 10^{212}:\\
\;\;\;\;\frac{\log \left(\sqrt{e^{\frac{\left(\beta + \alpha\right) \cdot \frac{\beta - \alpha}{2 + \left(\beta + \left(\alpha + 2 \cdot i\right)\right)}}{2 \cdot i + \left(\beta + \alpha\right)} + 1}}\right) + \log \left(\sqrt{e^{\frac{\left(\beta + \alpha\right) \cdot \frac{\beta - \alpha}{2 + \left(\beta + \left(\alpha + 2 \cdot i\right)\right)}}{2 \cdot i + \left(\beta + \alpha\right)} + 1}}\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{2}{\alpha} + \left(\frac{8}{{\alpha}^{3}} - \frac{\frac{4}{\alpha}}{\alpha}\right)}{2}\\
\end{array}double f(double alpha, double beta, double i) {
double r94743 = alpha;
double r94744 = beta;
double r94745 = r94743 + r94744;
double r94746 = r94744 - r94743;
double r94747 = r94745 * r94746;
double r94748 = 2.0;
double r94749 = i;
double r94750 = r94748 * r94749;
double r94751 = r94745 + r94750;
double r94752 = r94747 / r94751;
double r94753 = r94751 + r94748;
double r94754 = r94752 / r94753;
double r94755 = 1.0;
double r94756 = r94754 + r94755;
double r94757 = r94756 / r94748;
return r94757;
}
double f(double alpha, double beta, double i) {
double r94758 = alpha;
double r94759 = 1.244272110236543e+212;
bool r94760 = r94758 <= r94759;
double r94761 = beta;
double r94762 = r94761 + r94758;
double r94763 = r94761 - r94758;
double r94764 = 2.0;
double r94765 = i;
double r94766 = r94764 * r94765;
double r94767 = r94758 + r94766;
double r94768 = r94761 + r94767;
double r94769 = r94764 + r94768;
double r94770 = r94763 / r94769;
double r94771 = r94762 * r94770;
double r94772 = r94766 + r94762;
double r94773 = r94771 / r94772;
double r94774 = 1.0;
double r94775 = r94773 + r94774;
double r94776 = exp(r94775);
double r94777 = sqrt(r94776);
double r94778 = log(r94777);
double r94779 = r94778 + r94778;
double r94780 = r94779 / r94764;
double r94781 = r94764 / r94758;
double r94782 = 8.0;
double r94783 = 3.0;
double r94784 = pow(r94758, r94783);
double r94785 = r94782 / r94784;
double r94786 = 4.0;
double r94787 = r94786 / r94758;
double r94788 = r94787 / r94758;
double r94789 = r94785 - r94788;
double r94790 = r94781 + r94789;
double r94791 = r94790 / r94764;
double r94792 = r94760 ? r94780 : r94791;
return r94792;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Results
if alpha < 1.244272110236543e+212Initial program 18.9
Simplified18.9
rmApplied add-log-exp18.9
Applied add-log-exp18.9
Applied sum-log18.9
Simplified7.3
rmApplied div-inv7.3
Applied associate-*l*7.3
Simplified7.3
rmApplied add-sqr-sqrt7.3
Applied log-prod7.3
Simplified7.3
Simplified7.3
if 1.244272110236543e+212 < alpha Initial program 64.0
Simplified64.0
rmApplied add-log-exp64.0
Applied add-log-exp64.0
Applied sum-log64.0
Simplified50.1
Taylor expanded around inf 42.9
Simplified42.9
Final simplification11.1
herbie shell --seed 2019194
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/2"
:pre (and (> alpha -1.0) (> beta -1.0) (> i 0.0))
(/ (+ (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2.0 i))) (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)) 1.0) 2.0))