\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}\frac{\frac{\frac{\sqrt{1 + \mathsf{fma}\left(\alpha, \beta, \alpha + \beta\right)}}{\sqrt{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}}{\sqrt{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}}{\frac{\mathsf{fma}\left(1, 2, \alpha + \beta\right) + 1}{\frac{\sqrt{1 + \mathsf{fma}\left(\alpha, \beta, \alpha + \beta\right)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}}double f(double alpha, double beta) {
double r84853 = alpha;
double r84854 = beta;
double r84855 = r84853 + r84854;
double r84856 = r84854 * r84853;
double r84857 = r84855 + r84856;
double r84858 = 1.0;
double r84859 = r84857 + r84858;
double r84860 = 2.0;
double r84861 = r84860 * r84858;
double r84862 = r84855 + r84861;
double r84863 = r84859 / r84862;
double r84864 = r84863 / r84862;
double r84865 = r84862 + r84858;
double r84866 = r84864 / r84865;
return r84866;
}
double f(double alpha, double beta) {
double r84867 = 1.0;
double r84868 = alpha;
double r84869 = beta;
double r84870 = r84868 + r84869;
double r84871 = fma(r84868, r84869, r84870);
double r84872 = r84867 + r84871;
double r84873 = sqrt(r84872);
double r84874 = 2.0;
double r84875 = fma(r84867, r84874, r84870);
double r84876 = sqrt(r84875);
double r84877 = r84873 / r84876;
double r84878 = r84877 / r84876;
double r84879 = r84875 + r84867;
double r84880 = r84873 / r84875;
double r84881 = r84879 / r84880;
double r84882 = r84878 / r84881;
return r84882;
}



Bits error versus alpha



Bits error versus beta
Initial program 3.9
Simplified3.9
rmApplied add-sqr-sqrt4.4
Applied add-sqr-sqrt4.8
Applied add-sqr-sqrt4.7
Applied times-frac4.7
Applied times-frac4.5
Applied associate-/l*4.5
Simplified4.0
Final simplification4.0
herbie shell --seed 2019303 +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)))