\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(1 - 3 \cdot a\right)\right)\right) - 1\sqrt{{\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(1 - 3 \cdot a\right)\right)} \cdot \sqrt{{\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(1 - 3 \cdot a\right)\right)} - 1double f(double a, double b) {
double r231975 = a;
double r231976 = r231975 * r231975;
double r231977 = b;
double r231978 = r231977 * r231977;
double r231979 = r231976 + r231978;
double r231980 = 2.0;
double r231981 = pow(r231979, r231980);
double r231982 = 4.0;
double r231983 = 1.0;
double r231984 = r231983 + r231975;
double r231985 = r231976 * r231984;
double r231986 = 3.0;
double r231987 = r231986 * r231975;
double r231988 = r231983 - r231987;
double r231989 = r231978 * r231988;
double r231990 = r231985 + r231989;
double r231991 = r231982 * r231990;
double r231992 = r231981 + r231991;
double r231993 = r231992 - r231983;
return r231993;
}
double f(double a, double b) {
double r231994 = a;
double r231995 = r231994 * r231994;
double r231996 = b;
double r231997 = r231996 * r231996;
double r231998 = r231995 + r231997;
double r231999 = 2.0;
double r232000 = pow(r231998, r231999);
double r232001 = 4.0;
double r232002 = 1.0;
double r232003 = r232002 + r231994;
double r232004 = r231995 * r232003;
double r232005 = 3.0;
double r232006 = r232005 * r231994;
double r232007 = r232002 - r232006;
double r232008 = r231997 * r232007;
double r232009 = r232004 + r232008;
double r232010 = r232001 * r232009;
double r232011 = r232000 + r232010;
double r232012 = sqrt(r232011);
double r232013 = r232012 * r232012;
double r232014 = r232013 - r232002;
return r232014;
}



Bits error versus a



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