\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}\;\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} \le 0.0847054734374278889:\\
\;\;\;\;\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}\\
\mathbf{else}:\\
\;\;\;\;\frac{0}{\left(\alpha + \beta\right) + \mathsf{fma}\left(2, 1, 1\right)}\\
\end{array}double f(double alpha, double beta) {
double r134489 = alpha;
double r134490 = beta;
double r134491 = r134489 + r134490;
double r134492 = r134490 * r134489;
double r134493 = r134491 + r134492;
double r134494 = 1.0;
double r134495 = r134493 + r134494;
double r134496 = 2.0;
double r134497 = r134496 * r134494;
double r134498 = r134491 + r134497;
double r134499 = r134495 / r134498;
double r134500 = r134499 / r134498;
double r134501 = r134498 + r134494;
double r134502 = r134500 / r134501;
return r134502;
}
double f(double alpha, double beta) {
double r134503 = alpha;
double r134504 = beta;
double r134505 = r134503 + r134504;
double r134506 = r134504 * r134503;
double r134507 = r134505 + r134506;
double r134508 = 1.0;
double r134509 = r134507 + r134508;
double r134510 = 2.0;
double r134511 = r134510 * r134508;
double r134512 = r134505 + r134511;
double r134513 = r134509 / r134512;
double r134514 = r134513 / r134512;
double r134515 = r134512 + r134508;
double r134516 = r134514 / r134515;
double r134517 = 0.08470547343742789;
bool r134518 = r134516 <= r134517;
double r134519 = 0.0;
double r134520 = fma(r134510, r134508, r134508);
double r134521 = r134505 + r134520;
double r134522 = r134519 / r134521;
double r134523 = r134518 ? r134516 : r134522;
return r134523;
}



Bits error versus alpha



Bits error versus beta
if (/ (/ (/ (+ (+ (+ 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)) < 0.08470547343742789Initial program 0.1
if 0.08470547343742789 < (/ (/ (/ (+ (+ (+ 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)) Initial program 62.0
Simplified62.0
Taylor expanded around inf 21.1
Final simplification1.3
herbie shell --seed 2020046 +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)))