\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 r156963 = a;
double r156964 = r156963 * r156963;
double r156965 = b;
double r156966 = r156965 * r156965;
double r156967 = r156964 + r156966;
double r156968 = 2.0;
double r156969 = pow(r156967, r156968);
double r156970 = 4.0;
double r156971 = 1.0;
double r156972 = r156971 - r156963;
double r156973 = r156964 * r156972;
double r156974 = 3.0;
double r156975 = r156974 + r156963;
double r156976 = r156966 * r156975;
double r156977 = r156973 + r156976;
double r156978 = r156970 * r156977;
double r156979 = r156969 + r156978;
double r156980 = r156979 - r156971;
return r156980;
}
double f(double a, double b) {
double r156981 = a;
double r156982 = r156981 * r156981;
double r156983 = b;
double r156984 = r156983 * r156983;
double r156985 = r156982 + r156984;
double r156986 = 2.0;
double r156987 = pow(r156985, r156986);
double r156988 = 4.0;
double r156989 = 1.0;
double r156990 = r156989 - r156981;
double r156991 = r156982 * r156990;
double r156992 = 3.0;
double r156993 = r156992 + r156981;
double r156994 = r156984 * r156993;
double r156995 = r156991 + r156994;
double r156996 = r156988 * r156995;
double r156997 = r156987 + r156996;
double r156998 = r156997 - r156989;
return r156998;
}



Bits error versus a



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