\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.9207371840512 \cdot 10^{197}:\\
\;\;\;\;\frac{\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\left(\alpha + \beta\right) - 2 \cdot 1}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)} \cdot \left(\left(\alpha + \beta\right) - 2 \cdot 1\right)}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{1}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}} \cdot \frac{\frac{\mathsf{fma}\left(\beta, \sqrt{0.5}, \mathsf{fma}\left(0.75, \alpha \cdot \sqrt{0.5}, 1 \cdot \sqrt{0.5}\right) - 0.125 \cdot \frac{\beta}{\sqrt{0.5}}\right)}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}\\
\end{array}double f(double alpha, double beta) {
double r117626 = alpha;
double r117627 = beta;
double r117628 = r117626 + r117627;
double r117629 = r117627 * r117626;
double r117630 = r117628 + r117629;
double r117631 = 1.0;
double r117632 = r117630 + r117631;
double r117633 = 2.0;
double r117634 = r117633 * r117631;
double r117635 = r117628 + r117634;
double r117636 = r117632 / r117635;
double r117637 = r117636 / r117635;
double r117638 = r117635 + r117631;
double r117639 = r117637 / r117638;
return r117639;
}
double f(double alpha, double beta) {
double r117640 = beta;
double r117641 = 2.9207371840511997e+197;
bool r117642 = r117640 <= r117641;
double r117643 = alpha;
double r117644 = r117643 + r117640;
double r117645 = r117640 * r117643;
double r117646 = r117644 + r117645;
double r117647 = 1.0;
double r117648 = r117646 + r117647;
double r117649 = 2.0;
double r117650 = fma(r117647, r117649, r117644);
double r117651 = r117648 / r117650;
double r117652 = r117649 * r117647;
double r117653 = r117644 - r117652;
double r117654 = r117651 / r117653;
double r117655 = r117654 / r117650;
double r117656 = r117655 * r117653;
double r117657 = r117644 + r117652;
double r117658 = r117657 + r117647;
double r117659 = r117656 / r117658;
double r117660 = 1.0;
double r117661 = sqrt(r117657);
double r117662 = r117660 / r117661;
double r117663 = sqrt(r117658);
double r117664 = r117662 / r117663;
double r117665 = 0.5;
double r117666 = sqrt(r117665);
double r117667 = 0.75;
double r117668 = r117643 * r117666;
double r117669 = r117647 * r117666;
double r117670 = fma(r117667, r117668, r117669);
double r117671 = 0.125;
double r117672 = r117640 / r117666;
double r117673 = r117671 * r117672;
double r117674 = r117670 - r117673;
double r117675 = fma(r117640, r117666, r117674);
double r117676 = r117675 / r117663;
double r117677 = r117676 / r117650;
double r117678 = r117664 * r117677;
double r117679 = r117642 ? r117659 : r117678;
return r117679;
}



Bits error versus alpha



Bits error versus beta
if beta < 2.9207371840511997e+197Initial program 1.6
rmApplied flip-+2.4
Applied associate-/r/2.4
Simplified1.6
if 2.9207371840511997e+197 < beta Initial program 16.3
rmApplied add-sqr-sqrt16.3
Applied *-un-lft-identity16.3
Applied add-sqr-sqrt16.3
Applied *-un-lft-identity16.3
Applied times-frac16.3
Applied times-frac16.3
Applied times-frac16.3
Simplified16.3
Simplified16.3
Taylor expanded around 0 10.4
Simplified10.4
Final simplification2.6
herbie shell --seed 2020024 +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)))