\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 r126523 = a;
double r126524 = r126523 * r126523;
double r126525 = b;
double r126526 = r126525 * r126525;
double r126527 = r126524 + r126526;
double r126528 = 2.0;
double r126529 = pow(r126527, r126528);
double r126530 = 4.0;
double r126531 = 1.0;
double r126532 = r126531 + r126523;
double r126533 = r126524 * r126532;
double r126534 = 3.0;
double r126535 = r126534 * r126523;
double r126536 = r126531 - r126535;
double r126537 = r126526 * r126536;
double r126538 = r126533 + r126537;
double r126539 = r126530 * r126538;
double r126540 = r126529 + r126539;
double r126541 = r126540 - r126531;
return r126541;
}
double f(double a, double b) {
double r126542 = a;
double r126543 = r126542 * r126542;
double r126544 = b;
double r126545 = r126544 * r126544;
double r126546 = r126543 + r126545;
double r126547 = 2.0;
double r126548 = pow(r126546, r126547);
double r126549 = 4.0;
double r126550 = 1.0;
double r126551 = r126550 + r126542;
double r126552 = r126543 * r126551;
double r126553 = 3.0;
double r126554 = r126553 * r126542;
double r126555 = r126550 - r126554;
double r126556 = r126545 * r126555;
double r126557 = r126552 + r126556;
double r126558 = r126549 * r126557;
double r126559 = r126548 + r126558;
double r126560 = sqrt(r126559);
double r126561 = r126560 * r126560;
double r126562 = r126561 - r126550;
return r126562;
}



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))