\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 3.892030205181793265561609337251791430227 \cdot 10^{214}:\\
\;\;\;\;\frac{\frac{\frac{1}{\sqrt{\mathsf{fma}\left(2, 1, \alpha + \beta\right)}}}{\frac{\mathsf{fma}\left(2, 1, \alpha + \beta\right)}{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \alpha + \beta\right)}{\sqrt{\mathsf{fma}\left(2, 1, \alpha + \beta\right)}}}}}{1 + \mathsf{fma}\left(2, 1, \alpha + \beta\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{1}{\sqrt{\mathsf{fma}\left(2, 1, \alpha + \beta\right)}}}{\frac{\mathsf{fma}\left(2, 1, \alpha + \beta\right)}{\mathsf{fma}\left(\sqrt{0.5}, \beta, \mathsf{fma}\left(1, \sqrt{0.5}, \alpha \cdot \sqrt{0.5}\right)\right) - \mathsf{fma}\left(0.5, \beta \cdot \sqrt{0.125}, 0.125 \cdot \frac{\alpha}{\sqrt{0.5}}\right)}}}{1 + \mathsf{fma}\left(2, 1, \alpha + \beta\right)}\\
\end{array}double f(double alpha, double beta) {
double r4812036 = alpha;
double r4812037 = beta;
double r4812038 = r4812036 + r4812037;
double r4812039 = r4812037 * r4812036;
double r4812040 = r4812038 + r4812039;
double r4812041 = 1.0;
double r4812042 = r4812040 + r4812041;
double r4812043 = 2.0;
double r4812044 = r4812043 * r4812041;
double r4812045 = r4812038 + r4812044;
double r4812046 = r4812042 / r4812045;
double r4812047 = r4812046 / r4812045;
double r4812048 = r4812045 + r4812041;
double r4812049 = r4812047 / r4812048;
return r4812049;
}
double f(double alpha, double beta) {
double r4812050 = alpha;
double r4812051 = 3.8920302051817933e+214;
bool r4812052 = r4812050 <= r4812051;
double r4812053 = 1.0;
double r4812054 = 2.0;
double r4812055 = 1.0;
double r4812056 = beta;
double r4812057 = r4812050 + r4812056;
double r4812058 = fma(r4812054, r4812055, r4812057);
double r4812059 = sqrt(r4812058);
double r4812060 = r4812053 / r4812059;
double r4812061 = fma(r4812056, r4812050, r4812057);
double r4812062 = r4812055 + r4812061;
double r4812063 = r4812062 / r4812059;
double r4812064 = r4812058 / r4812063;
double r4812065 = r4812060 / r4812064;
double r4812066 = r4812055 + r4812058;
double r4812067 = r4812065 / r4812066;
double r4812068 = 0.5;
double r4812069 = sqrt(r4812068);
double r4812070 = r4812050 * r4812069;
double r4812071 = fma(r4812055, r4812069, r4812070);
double r4812072 = fma(r4812069, r4812056, r4812071);
double r4812073 = 0.125;
double r4812074 = sqrt(r4812073);
double r4812075 = r4812056 * r4812074;
double r4812076 = r4812050 / r4812069;
double r4812077 = r4812073 * r4812076;
double r4812078 = fma(r4812068, r4812075, r4812077);
double r4812079 = r4812072 - r4812078;
double r4812080 = r4812058 / r4812079;
double r4812081 = r4812060 / r4812080;
double r4812082 = r4812081 / r4812066;
double r4812083 = r4812052 ? r4812067 : r4812082;
return r4812083;
}



Bits error versus alpha



Bits error versus beta
if alpha < 3.8920302051817933e+214Initial program 2.1
Simplified2.1
rmApplied add-sqr-sqrt2.6
Applied *-un-lft-identity2.6
Applied times-frac2.6
Applied associate-/l*2.1
if 3.8920302051817933e+214 < alpha Initial program 16.4
Simplified16.4
rmApplied add-sqr-sqrt16.4
Applied *-un-lft-identity16.4
Applied times-frac16.4
Applied associate-/l*16.4
Taylor expanded around 0 5.0
Simplified5.0
Final simplification2.4
herbie shell --seed 2019174 +o rules:numerics
(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)))