\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 2.795069092854939666192787143111574910834 \cdot 10^{91}:\\
\;\;\;\;\mathsf{log1p}\left(\mathsf{expm1}\left(\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)}\right)\right) \cdot \frac{1}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\left(1 - \frac{1}{\beta}\right) + \frac{2}{\beta \cdot \beta}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}\\
\end{array}double f(double alpha, double beta) {
double r3842632 = alpha;
double r3842633 = beta;
double r3842634 = r3842632 + r3842633;
double r3842635 = r3842633 * r3842632;
double r3842636 = r3842634 + r3842635;
double r3842637 = 1.0;
double r3842638 = r3842636 + r3842637;
double r3842639 = 2.0;
double r3842640 = r3842639 * r3842637;
double r3842641 = r3842634 + r3842640;
double r3842642 = r3842638 / r3842641;
double r3842643 = r3842642 / r3842641;
double r3842644 = r3842641 + r3842637;
double r3842645 = r3842643 / r3842644;
return r3842645;
}
double f(double alpha, double beta) {
double r3842646 = beta;
double r3842647 = 2.7950690928549397e+91;
bool r3842648 = r3842646 <= r3842647;
double r3842649 = 1.0;
double r3842650 = alpha;
double r3842651 = r3842646 + r3842650;
double r3842652 = fma(r3842646, r3842650, r3842651);
double r3842653 = r3842649 + r3842652;
double r3842654 = 2.0;
double r3842655 = fma(r3842654, r3842649, r3842651);
double r3842656 = r3842653 / r3842655;
double r3842657 = r3842656 / r3842655;
double r3842658 = expm1(r3842657);
double r3842659 = log1p(r3842658);
double r3842660 = 1.0;
double r3842661 = r3842649 + r3842655;
double r3842662 = r3842660 / r3842661;
double r3842663 = r3842659 * r3842662;
double r3842664 = r3842649 / r3842646;
double r3842665 = r3842660 - r3842664;
double r3842666 = r3842646 * r3842646;
double r3842667 = r3842654 / r3842666;
double r3842668 = r3842665 + r3842667;
double r3842669 = r3842668 / r3842655;
double r3842670 = r3842669 / r3842661;
double r3842671 = r3842648 ? r3842663 : r3842670;
return r3842671;
}



Bits error versus alpha



Bits error versus beta
if beta < 2.7950690928549397e+91Initial program 0.4
Simplified0.4
rmApplied log1p-expm1-u0.4
rmApplied div-inv0.5
if 2.7950690928549397e+91 < beta Initial program 14.4
Simplified14.4
Taylor expanded around inf 10.1
Simplified10.1
Final simplification2.8
herbie shell --seed 2019172 +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)))