\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 2.7674997282640276 \cdot 10^{163}:\\
\;\;\;\;\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} \cdot \frac{1}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\\
\mathbf{else}:\\
\;\;\;\;1 \cdot \frac{\mathsf{fma}\left(\alpha, 0.25, \mathsf{fma}\left(\beta, 0.25, 0.5\right)\right)}{\left(\beta + \left(\alpha + \mathsf{fma}\left(1, 2, 1\right)\right)\right) \cdot \mathsf{fma}\left(1, 2, \alpha + \beta\right)}\\
\end{array}double f(double alpha, double beta) {
double r112438 = alpha;
double r112439 = beta;
double r112440 = r112438 + r112439;
double r112441 = r112439 * r112438;
double r112442 = r112440 + r112441;
double r112443 = 1.0;
double r112444 = r112442 + r112443;
double r112445 = 2.0;
double r112446 = r112445 * r112443;
double r112447 = r112440 + r112446;
double r112448 = r112444 / r112447;
double r112449 = r112448 / r112447;
double r112450 = r112447 + r112443;
double r112451 = r112449 / r112450;
return r112451;
}
double f(double alpha, double beta) {
double r112452 = alpha;
double r112453 = 2.7674997282640276e+163;
bool r112454 = r112452 <= r112453;
double r112455 = beta;
double r112456 = r112452 + r112455;
double r112457 = r112455 * r112452;
double r112458 = r112456 + r112457;
double r112459 = 1.0;
double r112460 = r112458 + r112459;
double r112461 = 2.0;
double r112462 = r112461 * r112459;
double r112463 = r112456 + r112462;
double r112464 = r112460 / r112463;
double r112465 = r112464 / r112463;
double r112466 = 1.0;
double r112467 = r112463 + r112459;
double r112468 = r112466 / r112467;
double r112469 = r112465 * r112468;
double r112470 = 0.25;
double r112471 = 0.5;
double r112472 = fma(r112455, r112470, r112471);
double r112473 = fma(r112452, r112470, r112472);
double r112474 = fma(r112459, r112461, r112459);
double r112475 = r112452 + r112474;
double r112476 = r112455 + r112475;
double r112477 = fma(r112459, r112461, r112456);
double r112478 = r112476 * r112477;
double r112479 = r112473 / r112478;
double r112480 = r112466 * r112479;
double r112481 = r112454 ? r112469 : r112480;
return r112481;
}



Bits error versus alpha



Bits error versus beta
if alpha < 2.7674997282640276e+163Initial program 1.3
rmApplied div-inv1.3
if 2.7674997282640276e+163 < alpha Initial program 17.5
rmApplied *-un-lft-identity17.5
Applied *-un-lft-identity17.5
Applied *-un-lft-identity17.5
Applied *-un-lft-identity17.5
Applied times-frac17.5
Applied times-frac17.5
Applied times-frac17.5
Simplified17.5
Simplified18.5
Taylor expanded around 0 8.3
Simplified8.3
Final simplification2.5
herbie shell --seed 2020020 +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)))