\frac{\frac{\left(i \cdot \left(\left(\alpha + \beta\right) + i\right)\right) \cdot \left(\beta \cdot \alpha + i \cdot \left(\left(\alpha + \beta\right) + i\right)\right)}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right)}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right) - 1.0}\begin{array}{l}
\mathbf{if}\;i \le 2.943197667848456 \cdot 10^{+140}:\\
\;\;\;\;\frac{\frac{\frac{i}{\frac{\left(\alpha + \beta\right) + i \cdot 2}{\left(\alpha + \beta\right) + i}}}{\sqrt{1.0} + \left(\left(\alpha + \beta\right) + i \cdot 2\right)} \cdot \frac{\left(\left(\alpha + \beta\right) + i\right) \cdot i + \alpha \cdot \beta}{\left(\alpha + \beta\right) + i \cdot 2}}{\left(\left(\alpha + \beta\right) + i \cdot 2\right) - \sqrt{1.0}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{1}{2} \cdot i}{\sqrt{1.0} + \left(\left(\alpha + \beta\right) + i \cdot 2\right)} \cdot \frac{\frac{1}{4} \cdot \left(\alpha + \beta\right) + \frac{1}{2} \cdot i}{\left(\left(\alpha + \beta\right) + i \cdot 2\right) - \sqrt{1.0}}\\
\end{array}double f(double alpha, double beta, double i) {
double r5021868 = i;
double r5021869 = alpha;
double r5021870 = beta;
double r5021871 = r5021869 + r5021870;
double r5021872 = r5021871 + r5021868;
double r5021873 = r5021868 * r5021872;
double r5021874 = r5021870 * r5021869;
double r5021875 = r5021874 + r5021873;
double r5021876 = r5021873 * r5021875;
double r5021877 = 2.0;
double r5021878 = r5021877 * r5021868;
double r5021879 = r5021871 + r5021878;
double r5021880 = r5021879 * r5021879;
double r5021881 = r5021876 / r5021880;
double r5021882 = 1.0;
double r5021883 = r5021880 - r5021882;
double r5021884 = r5021881 / r5021883;
return r5021884;
}
double f(double alpha, double beta, double i) {
double r5021885 = i;
double r5021886 = 2.943197667848456e+140;
bool r5021887 = r5021885 <= r5021886;
double r5021888 = alpha;
double r5021889 = beta;
double r5021890 = r5021888 + r5021889;
double r5021891 = 2.0;
double r5021892 = r5021885 * r5021891;
double r5021893 = r5021890 + r5021892;
double r5021894 = r5021890 + r5021885;
double r5021895 = r5021893 / r5021894;
double r5021896 = r5021885 / r5021895;
double r5021897 = 1.0;
double r5021898 = sqrt(r5021897);
double r5021899 = r5021898 + r5021893;
double r5021900 = r5021896 / r5021899;
double r5021901 = r5021894 * r5021885;
double r5021902 = r5021888 * r5021889;
double r5021903 = r5021901 + r5021902;
double r5021904 = r5021903 / r5021893;
double r5021905 = r5021900 * r5021904;
double r5021906 = r5021893 - r5021898;
double r5021907 = r5021905 / r5021906;
double r5021908 = 0.5;
double r5021909 = r5021908 * r5021885;
double r5021910 = r5021909 / r5021899;
double r5021911 = 0.25;
double r5021912 = r5021911 * r5021890;
double r5021913 = r5021912 + r5021909;
double r5021914 = r5021913 / r5021906;
double r5021915 = r5021910 * r5021914;
double r5021916 = r5021887 ? r5021907 : r5021915;
return r5021916;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Results
if i < 2.943197667848456e+140Initial program 40.7
rmApplied add-sqr-sqrt40.7
Applied difference-of-squares40.7
Applied times-frac15.9
Applied times-frac11.5
rmApplied associate-/l*11.4
rmApplied associate-*r/11.4
if 2.943197667848456e+140 < i Initial program 62.1
rmApplied add-sqr-sqrt62.1
Applied difference-of-squares62.1
Applied times-frac58.9
Applied times-frac58.8
rmApplied associate-/l*58.8
Taylor expanded around 0 10.2
Simplified10.2
Taylor expanded around inf 10.6
Final simplification10.9
herbie shell --seed 2019139
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/4"
:pre (and (> alpha -1) (> beta -1) (> i 1))
(/ (/ (* (* i (+ (+ alpha beta) i)) (+ (* beta alpha) (* i (+ (+ alpha beta) i)))) (* (+ (+ alpha beta) (* 2 i)) (+ (+ alpha beta) (* 2 i)))) (- (* (+ (+ alpha beta) (* 2 i)) (+ (+ alpha beta) (* 2 i))) 1.0)))