\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(\left(b \cdot b + \left(a \cdot a + a \cdot \left(a \cdot a\right)\right)\right) \cdot 4 + {\left(\sqrt{a \cdot a + b \cdot b}\right)}^{4}\right) + -4 \cdot \left(\left(3 \cdot a\right) \cdot \left(b \cdot b\right)\right)\right) - 1double f(double a, double b) {
double r11950917 = a;
double r11950918 = r11950917 * r11950917;
double r11950919 = b;
double r11950920 = r11950919 * r11950919;
double r11950921 = r11950918 + r11950920;
double r11950922 = 2.0;
double r11950923 = pow(r11950921, r11950922);
double r11950924 = 4.0;
double r11950925 = 1.0;
double r11950926 = r11950925 + r11950917;
double r11950927 = r11950918 * r11950926;
double r11950928 = 3.0;
double r11950929 = r11950928 * r11950917;
double r11950930 = r11950925 - r11950929;
double r11950931 = r11950920 * r11950930;
double r11950932 = r11950927 + r11950931;
double r11950933 = r11950924 * r11950932;
double r11950934 = r11950923 + r11950933;
double r11950935 = r11950934 - r11950925;
return r11950935;
}
double f(double a, double b) {
double r11950936 = b;
double r11950937 = r11950936 * r11950936;
double r11950938 = a;
double r11950939 = r11950938 * r11950938;
double r11950940 = r11950938 * r11950939;
double r11950941 = r11950939 + r11950940;
double r11950942 = r11950937 + r11950941;
double r11950943 = 4.0;
double r11950944 = r11950942 * r11950943;
double r11950945 = r11950939 + r11950937;
double r11950946 = sqrt(r11950945);
double r11950947 = pow(r11950946, r11950943);
double r11950948 = r11950944 + r11950947;
double r11950949 = -4.0;
double r11950950 = 3.0;
double r11950951 = r11950950 * r11950938;
double r11950952 = r11950951 * r11950937;
double r11950953 = r11950949 * r11950952;
double r11950954 = r11950948 + r11950953;
double r11950955 = 1.0;
double r11950956 = r11950954 - r11950955;
return r11950956;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied sub-neg0.2
Applied distribute-rgt-in0.2
Applied associate-+r+0.2
Applied distribute-rgt-in0.2
Applied associate-+r+0.2
Simplified0.2
rmApplied add-sqr-sqrt0.2
Applied associate-*r*0.1
rmApplied add-sqr-sqrt0.1
Applied pow30.1
rmApplied pow10.1
Applied pow-prod-up0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019158
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (+ 1 a)) (* (* b b) (- 1 (* 3 a)))))) 1))