\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 r265960 = a;
double r265961 = r265960 * r265960;
double r265962 = b;
double r265963 = r265962 * r265962;
double r265964 = r265961 + r265963;
double r265965 = 2.0;
double r265966 = pow(r265964, r265965);
double r265967 = 4.0;
double r265968 = 1.0;
double r265969 = r265968 - r265960;
double r265970 = r265961 * r265969;
double r265971 = 3.0;
double r265972 = r265971 + r265960;
double r265973 = r265963 * r265972;
double r265974 = r265970 + r265973;
double r265975 = r265967 * r265974;
double r265976 = r265966 + r265975;
double r265977 = r265976 - r265968;
return r265977;
}
double f(double a, double b) {
double r265978 = a;
double r265979 = r265978 * r265978;
double r265980 = b;
double r265981 = r265980 * r265980;
double r265982 = r265979 + r265981;
double r265983 = 2.0;
double r265984 = pow(r265982, r265983);
double r265985 = 4.0;
double r265986 = 1.0;
double r265987 = r265986 - r265978;
double r265988 = r265979 * r265987;
double r265989 = 3.0;
double r265990 = r265989 + r265978;
double r265991 = r265981 * r265990;
double r265992 = r265988 + r265991;
double r265993 = r265985 * r265992;
double r265994 = r265984 + r265993;
double r265995 = r265994 - r265986;
return r265995;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2020024 +o rules:numerics
(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))