\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}\;\beta \le 8.4856429570103299 \cdot 10^{177}:\\
\;\;\;\;\frac{\frac{\frac{1 + \left(\alpha \cdot \beta + \left(\alpha + \beta\right)\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\left(\alpha + \beta\right) + \mathsf{fma}\left(2, 1, 1\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{0}{\left(\alpha + \beta\right) + \mathsf{fma}\left(2, 1, 1\right)}\\
\end{array}double f(double alpha, double beta) {
double r93388 = alpha;
double r93389 = beta;
double r93390 = r93388 + r93389;
double r93391 = r93389 * r93388;
double r93392 = r93390 + r93391;
double r93393 = 1.0;
double r93394 = r93392 + r93393;
double r93395 = 2.0;
double r93396 = r93395 * r93393;
double r93397 = r93390 + r93396;
double r93398 = r93394 / r93397;
double r93399 = r93398 / r93397;
double r93400 = r93397 + r93393;
double r93401 = r93399 / r93400;
return r93401;
}
double f(double alpha, double beta) {
double r93402 = beta;
double r93403 = 8.48564295701033e+177;
bool r93404 = r93402 <= r93403;
double r93405 = 1.0;
double r93406 = alpha;
double r93407 = r93406 * r93402;
double r93408 = r93406 + r93402;
double r93409 = r93407 + r93408;
double r93410 = r93405 + r93409;
double r93411 = 2.0;
double r93412 = fma(r93405, r93411, r93408);
double r93413 = r93410 / r93412;
double r93414 = r93413 / r93412;
double r93415 = fma(r93411, r93405, r93405);
double r93416 = r93408 + r93415;
double r93417 = r93414 / r93416;
double r93418 = 0.0;
double r93419 = r93418 / r93416;
double r93420 = r93404 ? r93417 : r93419;
return r93420;
}



Bits error versus alpha



Bits error versus beta
if beta < 8.48564295701033e+177Initial program 1.6
Simplified1.6
rmApplied fma-udef1.6
if 8.48564295701033e+177 < beta Initial program 16.3
Simplified16.3
Taylor expanded around inf 6.4
Final simplification2.3
herbie shell --seed 2020047 +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)))