\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 r144973 = a;
double r144974 = r144973 * r144973;
double r144975 = b;
double r144976 = r144975 * r144975;
double r144977 = r144974 + r144976;
double r144978 = 2.0;
double r144979 = pow(r144977, r144978);
double r144980 = 4.0;
double r144981 = 1.0;
double r144982 = r144981 - r144973;
double r144983 = r144974 * r144982;
double r144984 = 3.0;
double r144985 = r144984 + r144973;
double r144986 = r144976 * r144985;
double r144987 = r144983 + r144986;
double r144988 = r144980 * r144987;
double r144989 = r144979 + r144988;
double r144990 = r144989 - r144981;
return r144990;
}
double f(double a, double b) {
double r144991 = a;
double r144992 = r144991 * r144991;
double r144993 = b;
double r144994 = r144993 * r144993;
double r144995 = r144992 + r144994;
double r144996 = 2.0;
double r144997 = pow(r144995, r144996);
double r144998 = 4.0;
double r144999 = 1.0;
double r145000 = r144999 - r144991;
double r145001 = r144992 * r145000;
double r145002 = 3.0;
double r145003 = r145002 + r144991;
double r145004 = r144994 * r145003;
double r145005 = r145001 + r145004;
double r145006 = r144998 * r145005;
double r145007 = r144997 + r145006;
double r145008 = r145007 - r144999;
return r145008;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2019325
(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))