\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 r245515 = a;
double r245516 = r245515 * r245515;
double r245517 = b;
double r245518 = r245517 * r245517;
double r245519 = r245516 + r245518;
double r245520 = 2.0;
double r245521 = pow(r245519, r245520);
double r245522 = 4.0;
double r245523 = 1.0;
double r245524 = r245523 + r245515;
double r245525 = r245516 * r245524;
double r245526 = 3.0;
double r245527 = r245526 * r245515;
double r245528 = r245523 - r245527;
double r245529 = r245518 * r245528;
double r245530 = r245525 + r245529;
double r245531 = r245522 * r245530;
double r245532 = r245521 + r245531;
double r245533 = r245532 - r245523;
return r245533;
}
double f(double a, double b) {
double r245534 = a;
double r245535 = r245534 * r245534;
double r245536 = b;
double r245537 = r245536 * r245536;
double r245538 = r245535 + r245537;
double r245539 = 2.0;
double r245540 = pow(r245538, r245539);
double r245541 = 4.0;
double r245542 = 1.0;
double r245543 = r245542 + r245534;
double r245544 = r245535 * r245543;
double r245545 = 3.0;
double r245546 = r245545 * r245534;
double r245547 = r245542 - r245546;
double r245548 = r245537 * r245547;
double r245549 = r245544 + r245548;
double r245550 = r245541 * r245549;
double r245551 = r245540 + r245550;
double r245552 = sqrt(r245551);
double r245553 = r245552 * r245552;
double r245554 = r245553 - r245542;
return r245554;
}



Bits error versus a



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