\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(a \cdot \left(a \cdot \left(1 + a\right)\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(a \cdot \left(a \cdot \left(1 + a\right)\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)} - 1double f(double a, double b) {
double r447885 = a;
double r447886 = r447885 * r447885;
double r447887 = b;
double r447888 = r447887 * r447887;
double r447889 = r447886 + r447888;
double r447890 = 2.0;
double r447891 = pow(r447889, r447890);
double r447892 = 4.0;
double r447893 = 1.0;
double r447894 = r447893 + r447885;
double r447895 = r447886 * r447894;
double r447896 = 3.0;
double r447897 = r447896 * r447885;
double r447898 = r447893 - r447897;
double r447899 = r447888 * r447898;
double r447900 = r447895 + r447899;
double r447901 = r447892 * r447900;
double r447902 = r447891 + r447901;
double r447903 = r447902 - r447893;
return r447903;
}
double f(double a, double b) {
double r447904 = a;
double r447905 = r447904 * r447904;
double r447906 = b;
double r447907 = r447906 * r447906;
double r447908 = r447905 + r447907;
double r447909 = 2.0;
double r447910 = pow(r447908, r447909);
double r447911 = 4.0;
double r447912 = 1.0;
double r447913 = r447912 + r447904;
double r447914 = r447904 * r447913;
double r447915 = r447904 * r447914;
double r447916 = 3.0;
double r447917 = r447916 * r447904;
double r447918 = r447912 - r447917;
double r447919 = r447907 * r447918;
double r447920 = r447915 + r447919;
double r447921 = r447911 * r447920;
double r447922 = r447910 + r447921;
double r447923 = sqrt(r447922);
double r447924 = r447923 * r447923;
double r447925 = r447924 - r447912;
return r447925;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied associate-*l*0.2
rmApplied add-sqr-sqrt0.2
Final simplification0.2
herbie shell --seed 2020062 +o rules:numerics
(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))