\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}:\\
\;\;\;\;\sqrt{\frac{\frac{1 + \left(\beta \cdot \alpha + \left(\beta + \alpha\right)\right)}{2 \cdot 1 + \left(\beta + \alpha\right)}}{2 \cdot 1 + \left(\beta + \alpha\right)}} \cdot \frac{\sqrt{\frac{\frac{1 + \left(\beta \cdot \alpha + \left(\beta + \alpha\right)\right)}{2 \cdot 1 + \left(\beta + \alpha\right)}}{2 \cdot 1 + \left(\beta + \alpha\right)}}}{\left(2 \cdot 1 + \left(\beta + \alpha\right)\right) + 1}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{\frac{2}{\alpha}}{\alpha} + \left(1 - \frac{1}{\alpha}\right)}{2 \cdot 1 + \left(\beta + \alpha\right)}}{\left(2 \cdot 1 + \left(\beta + \alpha\right)\right) + 1}\\
\end{array}double f(double alpha, double beta) {
double r4673805 = alpha;
double r4673806 = beta;
double r4673807 = r4673805 + r4673806;
double r4673808 = r4673806 * r4673805;
double r4673809 = r4673807 + r4673808;
double r4673810 = 1.0;
double r4673811 = r4673809 + r4673810;
double r4673812 = 2.0;
double r4673813 = r4673812 * r4673810;
double r4673814 = r4673807 + r4673813;
double r4673815 = r4673811 / r4673814;
double r4673816 = r4673815 / r4673814;
double r4673817 = r4673814 + r4673810;
double r4673818 = r4673816 / r4673817;
return r4673818;
}
double f(double alpha, double beta) {
double r4673819 = alpha;
double r4673820 = 2.147016907849488e+170;
bool r4673821 = r4673819 <= r4673820;
double r4673822 = 1.0;
double r4673823 = beta;
double r4673824 = r4673823 * r4673819;
double r4673825 = r4673823 + r4673819;
double r4673826 = r4673824 + r4673825;
double r4673827 = r4673822 + r4673826;
double r4673828 = 2.0;
double r4673829 = r4673828 * r4673822;
double r4673830 = r4673829 + r4673825;
double r4673831 = r4673827 / r4673830;
double r4673832 = r4673831 / r4673830;
double r4673833 = sqrt(r4673832);
double r4673834 = r4673830 + r4673822;
double r4673835 = r4673833 / r4673834;
double r4673836 = r4673833 * r4673835;
double r4673837 = r4673828 / r4673819;
double r4673838 = r4673837 / r4673819;
double r4673839 = 1.0;
double r4673840 = r4673822 / r4673819;
double r4673841 = r4673839 - r4673840;
double r4673842 = r4673838 + r4673841;
double r4673843 = r4673842 / r4673830;
double r4673844 = r4673843 / r4673834;
double r4673845 = r4673821 ? r4673836 : r4673844;
return r4673845;
}



Bits error versus alpha



Bits error versus beta
Results
if alpha < 2.147016907849488e+170Initial program 1.3
rmApplied *-un-lft-identity1.3
Applied add-sqr-sqrt1.4
Applied times-frac1.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)))