\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(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) - 1double f(double a, double b) {
double r280968 = a;
double r280969 = r280968 * r280968;
double r280970 = b;
double r280971 = r280970 * r280970;
double r280972 = r280969 + r280971;
double r280973 = 2.0;
double r280974 = pow(r280972, r280973);
double r280975 = 4.0;
double r280976 = 1.0;
double r280977 = r280976 - r280968;
double r280978 = r280969 * r280977;
double r280979 = 3.0;
double r280980 = r280979 + r280968;
double r280981 = r280971 * r280980;
double r280982 = r280978 + r280981;
double r280983 = r280975 * r280982;
double r280984 = r280974 + r280983;
double r280985 = r280984 - r280976;
return r280985;
}
double f(double a, double b) {
double r280986 = a;
double r280987 = r280986 * r280986;
double r280988 = b;
double r280989 = r280988 * r280988;
double r280990 = r280987 + r280989;
double r280991 = 2.0;
double r280992 = pow(r280990, r280991);
double r280993 = 4.0;
double r280994 = 1.0;
double r280995 = r280994 - r280986;
double r280996 = r280987 * r280995;
double r280997 = 3.0;
double r280998 = r280997 + r280986;
double r280999 = r280989 * r280998;
double r281000 = r280996 + r280999;
double r281001 = r280993 * r281000;
double r281002 = r280992 + r281001;
double r281003 = r281002 - r280994;
return r281003;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2020057
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))