\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 7.550165460766494691638825120762765960477 \cdot 10^{163}:\\
\;\;\;\;\frac{\frac{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}\\
\mathbf{else}:\\
\;\;\;\;0\\
\end{array}double f(double alpha, double beta) {
double r8665688 = alpha;
double r8665689 = beta;
double r8665690 = r8665688 + r8665689;
double r8665691 = r8665689 * r8665688;
double r8665692 = r8665690 + r8665691;
double r8665693 = 1.0;
double r8665694 = r8665692 + r8665693;
double r8665695 = 2.0;
double r8665696 = r8665695 * r8665693;
double r8665697 = r8665690 + r8665696;
double r8665698 = r8665694 / r8665697;
double r8665699 = r8665698 / r8665697;
double r8665700 = r8665697 + r8665693;
double r8665701 = r8665699 / r8665700;
return r8665701;
}
double f(double alpha, double beta) {
double r8665702 = beta;
double r8665703 = 7.550165460766495e+163;
bool r8665704 = r8665702 <= r8665703;
double r8665705 = 1.0;
double r8665706 = alpha;
double r8665707 = r8665702 + r8665706;
double r8665708 = fma(r8665702, r8665706, r8665707);
double r8665709 = r8665705 + r8665708;
double r8665710 = 2.0;
double r8665711 = fma(r8665710, r8665705, r8665707);
double r8665712 = r8665709 / r8665711;
double r8665713 = r8665712 / r8665711;
double r8665714 = r8665705 + r8665711;
double r8665715 = r8665713 / r8665714;
double r8665716 = 0.0;
double r8665717 = r8665704 ? r8665715 : r8665716;
return r8665717;
}



Bits error versus alpha



Bits error versus beta
if beta < 7.550165460766495e+163Initial program 1.4
Simplified1.4
if 7.550165460766495e+163 < beta Initial program 16.7
Simplified16.7
Taylor expanded around inf 7.3
Final simplification2.3
herbie shell --seed 2019169 +o rules:numerics
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/3"
:pre (and (> alpha -1.0) (> beta -1.0))
(/ (/ (/ (+ (+ (+ 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)))