\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.553719024558119030355109565292928030815 \cdot 10^{128}:\\
\;\;\;\;\frac{\left(\left(\beta + \left(\alpha + \mathsf{fma}\left(\alpha, \beta, 1\right)\right)\right) \cdot \frac{\frac{1}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\left(\alpha + \beta\right) - 2 \cdot 1}\right) \cdot \frac{\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{\mathsf{fma}\left(2, \frac{1}{{\alpha}^{2}}, 1 - 1 \cdot \frac{1}{\alpha}\right)}{\left(\alpha + \beta\right) - 2 \cdot 1} \cdot \frac{\left(\alpha + \beta\right) - 2 \cdot 1}{\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 r105201 = alpha;
double r105202 = beta;
double r105203 = r105201 + r105202;
double r105204 = r105202 * r105201;
double r105205 = r105203 + r105204;
double r105206 = 1.0;
double r105207 = r105205 + r105206;
double r105208 = 2.0;
double r105209 = r105208 * r105206;
double r105210 = r105203 + r105209;
double r105211 = r105207 / r105210;
double r105212 = r105211 / r105210;
double r105213 = r105210 + r105206;
double r105214 = r105212 / r105213;
return r105214;
}
double f(double alpha, double beta) {
double r105215 = alpha;
double r105216 = 3.553719024558119e+128;
bool r105217 = r105215 <= r105216;
double r105218 = beta;
double r105219 = 1.0;
double r105220 = fma(r105215, r105218, r105219);
double r105221 = r105215 + r105220;
double r105222 = r105218 + r105221;
double r105223 = 1.0;
double r105224 = 2.0;
double r105225 = r105215 + r105218;
double r105226 = fma(r105219, r105224, r105225);
double r105227 = r105223 / r105226;
double r105228 = r105224 * r105219;
double r105229 = r105225 - r105228;
double r105230 = r105227 / r105229;
double r105231 = r105222 * r105230;
double r105232 = r105225 + r105228;
double r105233 = r105229 / r105232;
double r105234 = r105231 * r105233;
double r105235 = r105232 + r105219;
double r105236 = r105234 / r105235;
double r105237 = 2.0;
double r105238 = pow(r105215, r105237);
double r105239 = r105223 / r105238;
double r105240 = r105223 / r105215;
double r105241 = r105219 * r105240;
double r105242 = r105223 - r105241;
double r105243 = fma(r105224, r105239, r105242);
double r105244 = r105243 / r105229;
double r105245 = r105244 * r105233;
double r105246 = r105245 / r105235;
double r105247 = r105217 ? r105236 : r105246;
return r105247;
}



Bits error versus alpha



Bits error versus beta
if alpha < 3.553719024558119e+128Initial program 1.0
rmApplied *-un-lft-identity1.0
Applied flip-+1.5
Applied associate-/r/1.5
Applied times-frac1.5
Simplified1.0
rmApplied *-un-lft-identity1.0
Applied div-inv1.0
Applied times-frac1.3
Simplified1.3
if 3.553719024558119e+128 < alpha Initial program 14.3
rmApplied *-un-lft-identity14.3
Applied flip-+16.7
Applied associate-/r/16.7
Applied times-frac16.7
Simplified14.3
Taylor expanded around inf 9.2
Simplified9.2
Final simplification2.8
herbie shell --seed 2019346 +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)))