\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 r99015 = a;
double r99016 = r99015 * r99015;
double r99017 = b;
double r99018 = r99017 * r99017;
double r99019 = r99016 + r99018;
double r99020 = 2.0;
double r99021 = pow(r99019, r99020);
double r99022 = 4.0;
double r99023 = 1.0;
double r99024 = r99023 + r99015;
double r99025 = r99016 * r99024;
double r99026 = 3.0;
double r99027 = r99026 * r99015;
double r99028 = r99023 - r99027;
double r99029 = r99018 * r99028;
double r99030 = r99025 + r99029;
double r99031 = r99022 * r99030;
double r99032 = r99021 + r99031;
double r99033 = r99032 - r99023;
return r99033;
}
double f(double a, double b) {
double r99034 = a;
double r99035 = r99034 * r99034;
double r99036 = b;
double r99037 = r99036 * r99036;
double r99038 = r99035 + r99037;
double r99039 = 2.0;
double r99040 = pow(r99038, r99039);
double r99041 = 4.0;
double r99042 = 1.0;
double r99043 = r99042 + r99034;
double r99044 = r99035 * r99043;
double r99045 = 3.0;
double r99046 = r99045 * r99034;
double r99047 = r99042 - r99046;
double r99048 = r99037 * r99047;
double r99049 = r99044 + r99048;
double r99050 = r99041 * r99049;
double r99051 = r99040 + r99050;
double r99052 = sqrt(r99051);
double r99053 = r99052 * r99052;
double r99054 = r99053 - r99042;
return r99054;
}



Bits error versus a



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