\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 \left(\sqrt{\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{\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)}}\right) - 1double f(double a, double b) {
double r368898 = a;
double r368899 = r368898 * r368898;
double r368900 = b;
double r368901 = r368900 * r368900;
double r368902 = r368899 + r368901;
double r368903 = 2.0;
double r368904 = pow(r368902, r368903);
double r368905 = 4.0;
double r368906 = 1.0;
double r368907 = r368906 + r368898;
double r368908 = r368899 * r368907;
double r368909 = 3.0;
double r368910 = r368909 * r368898;
double r368911 = r368906 - r368910;
double r368912 = r368901 * r368911;
double r368913 = r368908 + r368912;
double r368914 = r368905 * r368913;
double r368915 = r368904 + r368914;
double r368916 = r368915 - r368906;
return r368916;
}
double f(double a, double b) {
double r368917 = a;
double r368918 = r368917 * r368917;
double r368919 = b;
double r368920 = r368919 * r368919;
double r368921 = r368918 + r368920;
double r368922 = 2.0;
double r368923 = pow(r368921, r368922);
double r368924 = 4.0;
double r368925 = 1.0;
double r368926 = r368925 + r368917;
double r368927 = r368918 * r368926;
double r368928 = 3.0;
double r368929 = r368928 * r368917;
double r368930 = r368925 - r368929;
double r368931 = r368920 * r368930;
double r368932 = r368927 + r368931;
double r368933 = r368924 * r368932;
double r368934 = r368923 + r368933;
double r368935 = sqrt(r368934);
double r368936 = sqrt(r368935);
double r368937 = r368936 * r368936;
double r368938 = r368935 * r368937;
double r368939 = r368938 - r368925;
return r368939;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied add-sqr-sqrt0.2
rmApplied add-sqr-sqrt0.2
Applied sqrt-prod0.2
Final simplification0.2
herbie shell --seed 2020046
(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))