\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 r133017 = a;
double r133018 = r133017 * r133017;
double r133019 = b;
double r133020 = r133019 * r133019;
double r133021 = r133018 + r133020;
double r133022 = 2.0;
double r133023 = pow(r133021, r133022);
double r133024 = 4.0;
double r133025 = 1.0;
double r133026 = r133025 + r133017;
double r133027 = r133018 * r133026;
double r133028 = 3.0;
double r133029 = r133028 * r133017;
double r133030 = r133025 - r133029;
double r133031 = r133020 * r133030;
double r133032 = r133027 + r133031;
double r133033 = r133024 * r133032;
double r133034 = r133023 + r133033;
double r133035 = r133034 - r133025;
return r133035;
}
double f(double a, double b) {
double r133036 = a;
double r133037 = r133036 * r133036;
double r133038 = b;
double r133039 = r133038 * r133038;
double r133040 = r133037 + r133039;
double r133041 = 2.0;
double r133042 = pow(r133040, r133041);
double r133043 = 4.0;
double r133044 = 1.0;
double r133045 = r133044 + r133036;
double r133046 = r133037 * r133045;
double r133047 = 3.0;
double r133048 = r133047 * r133036;
double r133049 = r133044 - r133048;
double r133050 = r133039 * r133049;
double r133051 = r133046 + r133050;
double r133052 = r133043 * r133051;
double r133053 = r133042 + r133052;
double r133054 = sqrt(r133053);
double r133055 = r133054 * r133054;
double r133056 = r133055 - r133044;
return r133056;
}



Bits error versus a



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