\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} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4} \cdot \sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4} - 1double f(double a, double b) {
double r5245571 = a;
double r5245572 = r5245571 * r5245571;
double r5245573 = b;
double r5245574 = r5245573 * r5245573;
double r5245575 = r5245572 + r5245574;
double r5245576 = 2.0;
double r5245577 = pow(r5245575, r5245576);
double r5245578 = 4.0;
double r5245579 = 1.0;
double r5245580 = r5245579 + r5245571;
double r5245581 = r5245572 * r5245580;
double r5245582 = 3.0;
double r5245583 = r5245582 * r5245571;
double r5245584 = r5245579 - r5245583;
double r5245585 = r5245574 * r5245584;
double r5245586 = r5245581 + r5245585;
double r5245587 = r5245578 * r5245586;
double r5245588 = r5245577 + r5245587;
double r5245589 = r5245588 - r5245579;
return r5245589;
}
double f(double a, double b) {
double r5245590 = a;
double r5245591 = r5245590 * r5245590;
double r5245592 = b;
double r5245593 = r5245592 * r5245592;
double r5245594 = r5245591 + r5245593;
double r5245595 = 2.0;
double r5245596 = pow(r5245594, r5245595);
double r5245597 = 1.0;
double r5245598 = r5245590 + r5245597;
double r5245599 = r5245591 * r5245598;
double r5245600 = 3.0;
double r5245601 = r5245600 * r5245590;
double r5245602 = r5245597 - r5245601;
double r5245603 = r5245593 * r5245602;
double r5245604 = r5245599 + r5245603;
double r5245605 = 4.0;
double r5245606 = r5245604 * r5245605;
double r5245607 = r5245596 + r5245606;
double r5245608 = sqrt(r5245607);
double r5245609 = r5245608 * r5245608;
double r5245610 = r5245609 - r5245597;
return r5245610;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied add-sqr-sqrt0.2
Final simplification0.2
herbie shell --seed 2019192
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
(- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (+ 1.0 a)) (* (* b b) (- 1.0 (* 3.0 a)))))) 1.0))