\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}\begin{array}{l}
\mathbf{if}\;\alpha \le 7863989155318432839393331734927900672:\\
\;\;\;\;\frac{\frac{\beta}{\left(\beta + \alpha\right) + 2} - \left(\frac{\alpha}{\left(\beta + \alpha\right) + 2} - 1\right)}{2}\\
\mathbf{elif}\;\alpha \le 1.526450071771057118621392850450502817566 \cdot 10^{113}:\\
\;\;\;\;\frac{\frac{\beta}{\left(\beta + \alpha\right) + 2} - \left(\frac{4}{\alpha \cdot \alpha} - \left(\frac{2}{\alpha} + \frac{\frac{8}{\alpha}}{\alpha \cdot \alpha}\right)\right)}{2}\\
\mathbf{elif}\;\alpha \le 1.143721273478083214922895355787158286969 \cdot 10^{167}:\\
\;\;\;\;\frac{\frac{\beta}{\left(\beta + \alpha\right) + 2} - \left(\frac{\alpha}{\left(\beta + \alpha\right) + 2} - 1\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\beta}{\left(\beta + \alpha\right) + 2} - \left(\frac{4}{\alpha \cdot \alpha} - \left(\frac{2}{\alpha} + \frac{\frac{8}{\alpha}}{\alpha \cdot \alpha}\right)\right)}{2}\\
\end{array}double f(double alpha, double beta) {
double r4000717 = beta;
double r4000718 = alpha;
double r4000719 = r4000717 - r4000718;
double r4000720 = r4000718 + r4000717;
double r4000721 = 2.0;
double r4000722 = r4000720 + r4000721;
double r4000723 = r4000719 / r4000722;
double r4000724 = 1.0;
double r4000725 = r4000723 + r4000724;
double r4000726 = r4000725 / r4000721;
return r4000726;
}
double f(double alpha, double beta) {
double r4000727 = alpha;
double r4000728 = 7.863989155318433e+36;
bool r4000729 = r4000727 <= r4000728;
double r4000730 = beta;
double r4000731 = r4000730 + r4000727;
double r4000732 = 2.0;
double r4000733 = r4000731 + r4000732;
double r4000734 = r4000730 / r4000733;
double r4000735 = r4000727 / r4000733;
double r4000736 = 1.0;
double r4000737 = r4000735 - r4000736;
double r4000738 = r4000734 - r4000737;
double r4000739 = r4000738 / r4000732;
double r4000740 = 1.5264500717710571e+113;
bool r4000741 = r4000727 <= r4000740;
double r4000742 = 4.0;
double r4000743 = r4000727 * r4000727;
double r4000744 = r4000742 / r4000743;
double r4000745 = r4000732 / r4000727;
double r4000746 = 8.0;
double r4000747 = r4000746 / r4000727;
double r4000748 = r4000747 / r4000743;
double r4000749 = r4000745 + r4000748;
double r4000750 = r4000744 - r4000749;
double r4000751 = r4000734 - r4000750;
double r4000752 = r4000751 / r4000732;
double r4000753 = 1.1437212734780832e+167;
bool r4000754 = r4000727 <= r4000753;
double r4000755 = r4000754 ? r4000739 : r4000752;
double r4000756 = r4000741 ? r4000752 : r4000755;
double r4000757 = r4000729 ? r4000739 : r4000756;
return r4000757;
}



Bits error versus alpha



Bits error versus beta
Results
if alpha < 7.863989155318433e+36 or 1.5264500717710571e+113 < alpha < 1.1437212734780832e+167Initial program 5.4
rmApplied div-sub5.4
Applied associate-+l-5.3
rmApplied add-exp-log5.3
rmApplied pow15.3
Applied log-pow5.3
Applied exp-prod5.4
Simplified5.4
rmApplied *-un-lft-identity5.4
Applied *-un-lft-identity5.4
Applied times-frac5.4
Applied log-prod5.4
Applied unpow-prod-up5.4
Simplified5.4
Simplified5.3
if 7.863989155318433e+36 < alpha < 1.5264500717710571e+113 or 1.1437212734780832e+167 < alpha Initial program 51.0
rmApplied div-sub51.0
Applied associate-+l-49.2
Taylor expanded around inf 18.7
Simplified18.7
Final simplification8.5
herbie shell --seed 2019200 +o rules:numerics
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/1"
:pre (and (> alpha -1.0) (> beta -1.0))
(/ (+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0) 2.0))