\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}\;\alpha \le 2.14701690784948810313193177185753177761 \cdot 10^{170}:\\
\;\;\;\;\frac{\sqrt{\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}} \cdot \sqrt{\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{\frac{2}{\alpha \cdot \alpha} + \left(1 - \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 r6129636 = alpha;
double r6129637 = beta;
double r6129638 = r6129636 + r6129637;
double r6129639 = r6129637 * r6129636;
double r6129640 = r6129638 + r6129639;
double r6129641 = 1.0;
double r6129642 = r6129640 + r6129641;
double r6129643 = 2.0;
double r6129644 = r6129643 * r6129641;
double r6129645 = r6129638 + r6129644;
double r6129646 = r6129642 / r6129645;
double r6129647 = r6129646 / r6129645;
double r6129648 = r6129645 + r6129641;
double r6129649 = r6129647 / r6129648;
return r6129649;
}
double f(double alpha, double beta) {
double r6129650 = alpha;
double r6129651 = 2.147016907849488e+170;
bool r6129652 = r6129650 <= r6129651;
double r6129653 = beta;
double r6129654 = r6129650 + r6129653;
double r6129655 = r6129653 * r6129650;
double r6129656 = r6129654 + r6129655;
double r6129657 = 1.0;
double r6129658 = r6129656 + r6129657;
double r6129659 = 2.0;
double r6129660 = r6129659 * r6129657;
double r6129661 = r6129654 + r6129660;
double r6129662 = r6129658 / r6129661;
double r6129663 = r6129662 / r6129661;
double r6129664 = sqrt(r6129663);
double r6129665 = r6129664 * r6129664;
double r6129666 = r6129661 + r6129657;
double r6129667 = r6129665 / r6129666;
double r6129668 = r6129650 * r6129650;
double r6129669 = r6129659 / r6129668;
double r6129670 = 1.0;
double r6129671 = r6129657 / r6129650;
double r6129672 = r6129670 - r6129671;
double r6129673 = r6129669 + r6129672;
double r6129674 = r6129673 / r6129661;
double r6129675 = r6129674 / r6129666;
double r6129676 = r6129652 ? r6129667 : r6129675;
return r6129676;
}



Bits error versus alpha



Bits error versus beta
Results
if alpha < 2.147016907849488e+170Initial program 1.3
rmApplied add-sqr-sqrt1.4
if 2.147016907849488e+170 < alpha Initial program 15.9
Taylor expanded around inf 7.9
Simplified7.9
Final simplification2.4
herbie shell --seed 2019174
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/3"
:pre (and (> alpha -1.0) (> beta -1.0))
(/ (/ (/ (+ (+ (+ 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)))