\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\begin{array}{l}
\mathbf{if}\;\alpha \le 3.292108726261348 \cdot 10^{+141}:\\
\;\;\;\;\frac{\frac{1.0 + \left(\beta \cdot \alpha + \left(\alpha + \beta\right)\right)}{\left(\alpha + 2\right) + \beta} \cdot \frac{1}{\left(\alpha + 2\right) + \beta}}{1.0 + \left(\left(\alpha + 2\right) + \beta\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{2.0}{\alpha \cdot \alpha} + \left(1 - \frac{1.0}{\alpha}\right)}{\left(\alpha + 2\right) + \beta}}{1.0 + \left(\left(\alpha + 2\right) + \beta\right)}\\
\end{array}double f(double alpha, double beta) {
double r3338804 = alpha;
double r3338805 = beta;
double r3338806 = r3338804 + r3338805;
double r3338807 = r3338805 * r3338804;
double r3338808 = r3338806 + r3338807;
double r3338809 = 1.0;
double r3338810 = r3338808 + r3338809;
double r3338811 = 2.0;
double r3338812 = 1.0;
double r3338813 = r3338811 * r3338812;
double r3338814 = r3338806 + r3338813;
double r3338815 = r3338810 / r3338814;
double r3338816 = r3338815 / r3338814;
double r3338817 = r3338814 + r3338809;
double r3338818 = r3338816 / r3338817;
return r3338818;
}
double f(double alpha, double beta) {
double r3338819 = alpha;
double r3338820 = 3.292108726261348e+141;
bool r3338821 = r3338819 <= r3338820;
double r3338822 = 1.0;
double r3338823 = beta;
double r3338824 = r3338823 * r3338819;
double r3338825 = r3338819 + r3338823;
double r3338826 = r3338824 + r3338825;
double r3338827 = r3338822 + r3338826;
double r3338828 = 2.0;
double r3338829 = r3338819 + r3338828;
double r3338830 = r3338829 + r3338823;
double r3338831 = r3338827 / r3338830;
double r3338832 = 1.0;
double r3338833 = r3338832 / r3338830;
double r3338834 = r3338831 * r3338833;
double r3338835 = r3338822 + r3338830;
double r3338836 = r3338834 / r3338835;
double r3338837 = 2.0;
double r3338838 = r3338819 * r3338819;
double r3338839 = r3338837 / r3338838;
double r3338840 = r3338822 / r3338819;
double r3338841 = r3338832 - r3338840;
double r3338842 = r3338839 + r3338841;
double r3338843 = r3338842 / r3338830;
double r3338844 = r3338843 / r3338835;
double r3338845 = r3338821 ? r3338836 : r3338844;
return r3338845;
}



Bits error versus alpha



Bits error versus beta
Results
if alpha < 3.292108726261348e+141Initial program 1.1
Simplified1.1
rmApplied div-inv1.1
if 3.292108726261348e+141 < alpha Initial program 15.4
Simplified15.4
Taylor expanded around -inf 9.1
Simplified9.1
Final simplification2.6
herbie shell --seed 2019139
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/3"
:pre (and (> alpha -1) (> beta -1))
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0)))