\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 6.2498429104423194 \cdot 10^{+159}:\\
\;\;\;\;\frac{\frac{1}{\frac{\frac{\left(\beta + \alpha\right) + 2}{\sqrt{1.0 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}}}{\frac{\sqrt{1.0 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}}{\left(\beta + \alpha\right) + 2}}}}{\left(\left(\beta + \alpha\right) + 2\right) + 1.0}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{1}{\left(\frac{\alpha}{\beta} + 2\right) + \frac{\beta}{\alpha}}}{\left(\left(\beta + \alpha\right) + 2\right) + 1.0}\\
\end{array}double f(double alpha, double beta) {
double r8213068 = alpha;
double r8213069 = beta;
double r8213070 = r8213068 + r8213069;
double r8213071 = r8213069 * r8213068;
double r8213072 = r8213070 + r8213071;
double r8213073 = 1.0;
double r8213074 = r8213072 + r8213073;
double r8213075 = 2.0;
double r8213076 = 1.0;
double r8213077 = r8213075 * r8213076;
double r8213078 = r8213070 + r8213077;
double r8213079 = r8213074 / r8213078;
double r8213080 = r8213079 / r8213078;
double r8213081 = r8213078 + r8213073;
double r8213082 = r8213080 / r8213081;
return r8213082;
}
double f(double alpha, double beta) {
double r8213083 = alpha;
double r8213084 = 6.2498429104423194e+159;
bool r8213085 = r8213083 <= r8213084;
double r8213086 = 1.0;
double r8213087 = beta;
double r8213088 = r8213087 + r8213083;
double r8213089 = 2.0;
double r8213090 = r8213088 + r8213089;
double r8213091 = 1.0;
double r8213092 = fma(r8213087, r8213083, r8213088);
double r8213093 = r8213091 + r8213092;
double r8213094 = sqrt(r8213093);
double r8213095 = r8213090 / r8213094;
double r8213096 = r8213094 / r8213090;
double r8213097 = r8213095 / r8213096;
double r8213098 = r8213086 / r8213097;
double r8213099 = r8213090 + r8213091;
double r8213100 = r8213098 / r8213099;
double r8213101 = r8213083 / r8213087;
double r8213102 = r8213101 + r8213089;
double r8213103 = r8213087 / r8213083;
double r8213104 = r8213102 + r8213103;
double r8213105 = r8213086 / r8213104;
double r8213106 = r8213105 / r8213099;
double r8213107 = r8213085 ? r8213100 : r8213106;
return r8213107;
}



Bits error versus alpha



Bits error versus beta
if alpha < 6.2498429104423194e+159Initial program 1.3
Simplified1.3
rmApplied clear-num1.3
rmApplied *-un-lft-identity1.3
Applied add-sqr-sqrt1.4
Applied times-frac1.4
Applied associate-/r*1.4
if 6.2498429104423194e+159 < alpha Initial program 14.4
Simplified14.4
rmApplied clear-num14.4
Taylor expanded around -inf 0.1
Final simplification1.2
herbie shell --seed 2019143 +o rules:numerics
(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)))