\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(3 + 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(3 + 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(3 + a\right)\right)} - 1double f(double a, double b) {
double r247895 = a;
double r247896 = r247895 * r247895;
double r247897 = b;
double r247898 = r247897 * r247897;
double r247899 = r247896 + r247898;
double r247900 = 2.0;
double r247901 = pow(r247899, r247900);
double r247902 = 4.0;
double r247903 = 1.0;
double r247904 = r247903 - r247895;
double r247905 = r247896 * r247904;
double r247906 = 3.0;
double r247907 = r247906 + r247895;
double r247908 = r247898 * r247907;
double r247909 = r247905 + r247908;
double r247910 = r247902 * r247909;
double r247911 = r247901 + r247910;
double r247912 = r247911 - r247903;
return r247912;
}
double f(double a, double b) {
double r247913 = a;
double r247914 = r247913 * r247913;
double r247915 = b;
double r247916 = r247915 * r247915;
double r247917 = r247914 + r247916;
double r247918 = 2.0;
double r247919 = pow(r247917, r247918);
double r247920 = 4.0;
double r247921 = 1.0;
double r247922 = r247921 - r247913;
double r247923 = r247914 * r247922;
double r247924 = 3.0;
double r247925 = r247924 + r247913;
double r247926 = r247916 * r247925;
double r247927 = r247923 + r247926;
double r247928 = r247920 * r247927;
double r247929 = r247919 + r247928;
double r247930 = sqrt(r247929);
double r247931 = r247930 * r247930;
double r247932 = r247931 - r247921;
return r247932;
}



Bits error versus a



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