\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)} \cdot \sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)} - 1double f(double a, double b) {
double r328867 = a;
double r328868 = r328867 * r328867;
double r328869 = b;
double r328870 = r328869 * r328869;
double r328871 = r328868 + r328870;
double r328872 = 2.0;
double r328873 = pow(r328871, r328872);
double r328874 = 4.0;
double r328875 = 1.0;
double r328876 = r328875 + r328867;
double r328877 = r328868 * r328876;
double r328878 = 3.0;
double r328879 = r328878 * r328867;
double r328880 = r328875 - r328879;
double r328881 = r328870 * r328880;
double r328882 = r328877 + r328881;
double r328883 = r328874 * r328882;
double r328884 = r328873 + r328883;
double r328885 = r328884 - r328875;
return r328885;
}
double f(double a, double b) {
double r328886 = a;
double r328887 = r328886 * r328886;
double r328888 = b;
double r328889 = r328888 * r328888;
double r328890 = r328887 + r328889;
double r328891 = 2.0;
double r328892 = pow(r328890, r328891);
double r328893 = 4.0;
double r328894 = 1.0;
double r328895 = r328894 + r328886;
double r328896 = r328887 * r328895;
double r328897 = 3.0;
double r328898 = r328897 * r328886;
double r328899 = r328894 - r328898;
double r328900 = r328889 * r328899;
double r328901 = r328896 + r328900;
double r328902 = r328893 * r328901;
double r328903 = r328892 + r328902;
double r328904 = sqrt(r328903);
double r328905 = r328904 * r328904;
double r328906 = r328905 - r328894;
return r328906;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied add-sqr-sqrt0.2
Final simplification0.2
herbie shell --seed 2020042
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (+ 1 a)) (* (* b b) (- 1 (* 3 a)))))) 1))