\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\left({\left(\sqrt{1}\right)}^{2} \cdot {\left(\sqrt{a \cdot a + b \cdot b}\right)}^{\left(2 \cdot 2\right)} + 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 r362897 = a;
double r362898 = r362897 * r362897;
double r362899 = b;
double r362900 = r362899 * r362899;
double r362901 = r362898 + r362900;
double r362902 = 2.0;
double r362903 = pow(r362901, r362902);
double r362904 = 4.0;
double r362905 = 1.0;
double r362906 = r362905 + r362897;
double r362907 = r362898 * r362906;
double r362908 = 3.0;
double r362909 = r362908 * r362897;
double r362910 = r362905 - r362909;
double r362911 = r362900 * r362910;
double r362912 = r362907 + r362911;
double r362913 = r362904 * r362912;
double r362914 = r362903 + r362913;
double r362915 = r362914 - r362905;
return r362915;
}
double f(double a, double b) {
double r362916 = 1.0;
double r362917 = sqrt(r362916);
double r362918 = 2.0;
double r362919 = pow(r362917, r362918);
double r362920 = a;
double r362921 = r362920 * r362920;
double r362922 = b;
double r362923 = r362922 * r362922;
double r362924 = r362921 + r362923;
double r362925 = sqrt(r362924);
double r362926 = 2.0;
double r362927 = r362926 * r362918;
double r362928 = pow(r362925, r362927);
double r362929 = r362919 * r362928;
double r362930 = 4.0;
double r362931 = 1.0;
double r362932 = r362931 + r362920;
double r362933 = r362921 * r362932;
double r362934 = 3.0;
double r362935 = r362934 * r362920;
double r362936 = r362931 - r362935;
double r362937 = r362923 * r362936;
double r362938 = r362933 + r362937;
double r362939 = r362930 * r362938;
double r362940 = r362929 + r362939;
double r362941 = r362940 - r362931;
return r362941;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied add-sqr-sqrt0.2
Applied unpow-prod-down0.2
rmApplied *-un-lft-identity0.2
Applied sqrt-prod0.2
Applied unpow-prod-down0.2
Applied associate-*l*0.2
Simplified0.0
Final simplification0.0
herbie shell --seed 2019318
(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))