\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\begin{array}{l}
\mathbf{if}\;\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1} \le 0.08339352464985870516667176843839115463197:\\
\;\;\;\;\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{1 + \left(\frac{2}{{\alpha}^{2}} - \frac{1}{\alpha}\right)}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\\
\end{array}double f(double alpha, double beta) {
double r149985 = alpha;
double r149986 = beta;
double r149987 = r149985 + r149986;
double r149988 = r149986 * r149985;
double r149989 = r149987 + r149988;
double r149990 = 1.0;
double r149991 = r149989 + r149990;
double r149992 = 2.0;
double r149993 = r149992 * r149990;
double r149994 = r149987 + r149993;
double r149995 = r149991 / r149994;
double r149996 = r149995 / r149994;
double r149997 = r149994 + r149990;
double r149998 = r149996 / r149997;
return r149998;
}
double f(double alpha, double beta) {
double r149999 = alpha;
double r150000 = beta;
double r150001 = r149999 + r150000;
double r150002 = r150000 * r149999;
double r150003 = r150001 + r150002;
double r150004 = 1.0;
double r150005 = r150003 + r150004;
double r150006 = 2.0;
double r150007 = r150006 * r150004;
double r150008 = r150001 + r150007;
double r150009 = r150005 / r150008;
double r150010 = r150009 / r150008;
double r150011 = r150008 + r150004;
double r150012 = r150010 / r150011;
double r150013 = 0.0833935246498587;
bool r150014 = r150012 <= r150013;
double r150015 = 1.0;
double r150016 = 2.0;
double r150017 = pow(r149999, r150016);
double r150018 = r150006 / r150017;
double r150019 = r150004 / r149999;
double r150020 = r150018 - r150019;
double r150021 = r150015 + r150020;
double r150022 = r150021 / r150008;
double r150023 = r150022 / r150011;
double r150024 = r150014 ? r150012 : r150023;
return r150024;
}



Bits error versus alpha



Bits error versus beta
Results
if (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2.0 1.0))) (+ (+ alpha beta) (* 2.0 1.0))) (+ (+ (+ alpha beta) (* 2.0 1.0)) 1.0)) < 0.0833935246498587Initial program 0.1
if 0.0833935246498587 < (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2.0 1.0))) (+ (+ alpha beta) (* 2.0 1.0))) (+ (+ (+ alpha beta) (* 2.0 1.0)) 1.0)) Initial program 60.6
Taylor expanded around inf 22.3
Simplified22.3
Final simplification1.4
herbie shell --seed 2019304 +o rules:numerics
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/3"
:precision binary64
:pre (and (> alpha -1) (> beta -1))
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1)))