\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 r159995 = a;
double r159996 = r159995 * r159995;
double r159997 = b;
double r159998 = r159997 * r159997;
double r159999 = r159996 + r159998;
double r160000 = 2.0;
double r160001 = pow(r159999, r160000);
double r160002 = 4.0;
double r160003 = 1.0;
double r160004 = r160003 + r159995;
double r160005 = r159996 * r160004;
double r160006 = 3.0;
double r160007 = r160006 * r159995;
double r160008 = r160003 - r160007;
double r160009 = r159998 * r160008;
double r160010 = r160005 + r160009;
double r160011 = r160002 * r160010;
double r160012 = r160001 + r160011;
double r160013 = r160012 - r160003;
return r160013;
}
double f(double a, double b) {
double r160014 = a;
double r160015 = r160014 * r160014;
double r160016 = b;
double r160017 = r160016 * r160016;
double r160018 = r160015 + r160017;
double r160019 = 2.0;
double r160020 = pow(r160018, r160019);
double r160021 = 4.0;
double r160022 = 1.0;
double r160023 = r160022 + r160014;
double r160024 = r160015 * r160023;
double r160025 = 3.0;
double r160026 = r160025 * r160014;
double r160027 = r160022 - r160026;
double r160028 = r160017 * r160027;
double r160029 = r160024 + r160028;
double r160030 = r160021 * r160029;
double r160031 = r160020 + r160030;
double r160032 = sqrt(r160031);
double r160033 = r160032 * r160032;
double r160034 = r160033 - r160022;
return r160034;
}



Bits error versus a



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