\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 1.38031043420997982278869925206117153783 \cdot 10^{163}:\\
\;\;\;\;\frac{\frac{1 + \mathsf{fma}\left(\alpha, \beta, \alpha + \beta\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)} \cdot \frac{1}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) + 1}\\
\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left(0.25, \alpha, \mathsf{fma}\left(0.25, \beta, 0.5\right)\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) \cdot \left(1 + \mathsf{fma}\left(1, 2, \alpha + \beta\right)\right)}\\
\end{array}double f(double alpha, double beta) {
double r142953 = alpha;
double r142954 = beta;
double r142955 = r142953 + r142954;
double r142956 = r142954 * r142953;
double r142957 = r142955 + r142956;
double r142958 = 1.0;
double r142959 = r142957 + r142958;
double r142960 = 2.0;
double r142961 = r142960 * r142958;
double r142962 = r142955 + r142961;
double r142963 = r142959 / r142962;
double r142964 = r142963 / r142962;
double r142965 = r142962 + r142958;
double r142966 = r142964 / r142965;
return r142966;
}
double f(double alpha, double beta) {
double r142967 = beta;
double r142968 = 1.3803104342099798e+163;
bool r142969 = r142967 <= r142968;
double r142970 = 1.0;
double r142971 = alpha;
double r142972 = r142971 + r142967;
double r142973 = fma(r142971, r142967, r142972);
double r142974 = r142970 + r142973;
double r142975 = 2.0;
double r142976 = fma(r142970, r142975, r142972);
double r142977 = r142974 / r142976;
double r142978 = 1.0;
double r142979 = r142978 / r142976;
double r142980 = r142977 * r142979;
double r142981 = r142976 + r142970;
double r142982 = r142980 / r142981;
double r142983 = 0.25;
double r142984 = 0.5;
double r142985 = fma(r142983, r142967, r142984);
double r142986 = fma(r142983, r142971, r142985);
double r142987 = r142970 + r142976;
double r142988 = r142976 * r142987;
double r142989 = r142986 / r142988;
double r142990 = r142969 ? r142982 : r142989;
return r142990;
}



Bits error versus alpha



Bits error versus beta
if beta < 1.3803104342099798e+163Initial program 1.1
Simplified1.1
rmApplied div-inv1.1
if 1.3803104342099798e+163 < beta Initial program 16.5
Simplified16.5
rmApplied div-inv16.5
rmApplied associate-*l/16.5
Applied associate-/l/17.6
Simplified17.6
rmApplied expm1-log1p-u17.6
Simplified17.6
Taylor expanded around 0 7.4
Simplified7.4
Final simplification2.1
herbie shell --seed 2019323 +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)))