\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}\;\alpha \leq 3.681462720248197 \cdot 10^{+89}:\\
\;\;\;\;\frac{1}{\alpha + \left(\beta + 1 \cdot 2\right)} \cdot \frac{\frac{\alpha + \left(\beta + \left(1 + \alpha \cdot \beta\right)\right)}{\alpha + \left(\beta + 1 \cdot 2\right)}}{\alpha + \left(\beta + \left(1 + 1 \cdot 2\right)\right)}\\
\mathbf{elif}\;\alpha \leq 4.090496957446828 \cdot 10^{+129}:\\
\;\;\;\;\frac{\frac{1 + \left(\frac{2}{\alpha \cdot \alpha} - \frac{1}{\alpha}\right)}{1 \cdot 2 + \left(\alpha + \beta\right)}}{1 + \left(1 \cdot 2 + \left(\alpha + \beta\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{1 + \left(\alpha \cdot \beta + \left(\alpha + \beta\right)\right)}{1 \cdot 2 + \left(\alpha + \beta\right)}}{1 \cdot 2 + \left(\alpha + \beta\right)}}{\sqrt{\alpha + \left(\beta + \left(1 + 1 \cdot 2\right)\right)} \cdot \sqrt{\alpha + \left(\beta + \left(1 + 1 \cdot 2\right)\right)}}\\
\end{array}double code(double alpha, double beta) {
return (((((double) (((double) (((double) (alpha + beta)) + ((double) (beta * alpha)))) + 1.0)) / ((double) (((double) (alpha + beta)) + ((double) (2.0 * 1.0))))) / ((double) (((double) (alpha + beta)) + ((double) (2.0 * 1.0))))) / ((double) (((double) (((double) (alpha + beta)) + ((double) (2.0 * 1.0)))) + 1.0)));
}
double code(double alpha, double beta) {
double VAR;
if ((alpha <= 3.681462720248197e+89)) {
VAR = ((double) ((1.0 / ((double) (alpha + ((double) (beta + ((double) (1.0 * 2.0))))))) * ((((double) (alpha + ((double) (beta + ((double) (1.0 + ((double) (alpha * beta)))))))) / ((double) (alpha + ((double) (beta + ((double) (1.0 * 2.0))))))) / ((double) (alpha + ((double) (beta + ((double) (1.0 + ((double) (1.0 * 2.0)))))))))));
} else {
double VAR_1;
if ((alpha <= 4.090496957446828e+129)) {
VAR_1 = ((((double) (1.0 + ((double) ((2.0 / ((double) (alpha * alpha))) - (1.0 / alpha))))) / ((double) (((double) (1.0 * 2.0)) + ((double) (alpha + beta))))) / ((double) (1.0 + ((double) (((double) (1.0 * 2.0)) + ((double) (alpha + beta)))))));
} else {
VAR_1 = (((((double) (1.0 + ((double) (((double) (alpha * beta)) + ((double) (alpha + beta)))))) / ((double) (((double) (1.0 * 2.0)) + ((double) (alpha + beta))))) / ((double) (((double) (1.0 * 2.0)) + ((double) (alpha + beta))))) / ((double) (((double) sqrt(((double) (alpha + ((double) (beta + ((double) (1.0 + ((double) (1.0 * 2.0)))))))))) * ((double) sqrt(((double) (alpha + ((double) (beta + ((double) (1.0 + ((double) (1.0 * 2.0)))))))))))));
}
VAR = VAR_1;
}
return VAR;
}



Bits error versus alpha



Bits error versus beta
Results
if alpha < 3.68146272024819717e89Initial program 0.4
rmApplied *-un-lft-identity0.4
Applied add-sqr-sqrt1.1
Applied add-sqr-sqrt1.4
Applied *-un-lft-identity1.4
Applied times-frac1.4
Applied times-frac1.2
Applied times-frac1.2
Simplified0.6
Simplified0.5
if 3.68146272024819717e89 < alpha < 4.0904969574468277e129Initial program 8.7
Taylor expanded around inf 14.4
Simplified14.4
if 4.0904969574468277e129 < alpha Initial program 15.1
rmApplied add-sqr-sqrt15.2
Simplified15.2
Simplified15.2
Final simplification3.9
herbie shell --seed 2020199
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/3"
:precision binary64
: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)))