\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\left(\left(b \cdot b\right) \cdot \left(3 + a\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4 - \left(1 - {\left(\sqrt{a \cdot a + b \cdot b}\right)}^{4}\right)double f(double a, double b) {
double r53529921 = a;
double r53529922 = r53529921 * r53529921;
double r53529923 = b;
double r53529924 = r53529923 * r53529923;
double r53529925 = r53529922 + r53529924;
double r53529926 = 2.0;
double r53529927 = pow(r53529925, r53529926);
double r53529928 = 4.0;
double r53529929 = 1.0;
double r53529930 = r53529929 - r53529921;
double r53529931 = r53529922 * r53529930;
double r53529932 = 3.0;
double r53529933 = r53529932 + r53529921;
double r53529934 = r53529924 * r53529933;
double r53529935 = r53529931 + r53529934;
double r53529936 = r53529928 * r53529935;
double r53529937 = r53529927 + r53529936;
double r53529938 = r53529937 - r53529929;
return r53529938;
}
double f(double a, double b) {
double r53529939 = b;
double r53529940 = r53529939 * r53529939;
double r53529941 = 3.0;
double r53529942 = a;
double r53529943 = r53529941 + r53529942;
double r53529944 = r53529940 * r53529943;
double r53529945 = r53529942 * r53529942;
double r53529946 = 1.0;
double r53529947 = r53529946 - r53529942;
double r53529948 = r53529945 * r53529947;
double r53529949 = r53529944 + r53529948;
double r53529950 = 4.0;
double r53529951 = r53529949 * r53529950;
double r53529952 = r53529945 + r53529940;
double r53529953 = sqrt(r53529952);
double r53529954 = pow(r53529953, r53529950);
double r53529955 = r53529946 - r53529954;
double r53529956 = r53529951 - r53529955;
return r53529956;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Simplified0.2
rmApplied add-sqr-sqrt0.2
Applied associate-*l*0.1
rmApplied add-sqr-sqrt0.1
Applied cube-unmult0.1
rmApplied pow10.1
Applied pow-prod-up0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019120
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))