\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\left(1 \cdot {\left(\sqrt{a \cdot a + b \cdot b}\right)}^{\left(2 \cdot 2\right)} + 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) - 1double f(double a, double b) {
double r198518 = a;
double r198519 = r198518 * r198518;
double r198520 = b;
double r198521 = r198520 * r198520;
double r198522 = r198519 + r198521;
double r198523 = 2.0;
double r198524 = pow(r198522, r198523);
double r198525 = 4.0;
double r198526 = 1.0;
double r198527 = r198526 + r198518;
double r198528 = r198519 * r198527;
double r198529 = 3.0;
double r198530 = r198529 * r198518;
double r198531 = r198526 - r198530;
double r198532 = r198521 * r198531;
double r198533 = r198528 + r198532;
double r198534 = r198525 * r198533;
double r198535 = r198524 + r198534;
double r198536 = r198535 - r198526;
return r198536;
}
double f(double a, double b) {
double r198537 = 1.0;
double r198538 = a;
double r198539 = r198538 * r198538;
double r198540 = b;
double r198541 = r198540 * r198540;
double r198542 = r198539 + r198541;
double r198543 = sqrt(r198542);
double r198544 = 2.0;
double r198545 = 2.0;
double r198546 = r198544 * r198545;
double r198547 = pow(r198543, r198546);
double r198548 = r198537 * r198547;
double r198549 = 4.0;
double r198550 = 1.0;
double r198551 = r198550 + r198538;
double r198552 = r198539 * r198551;
double r198553 = 3.0;
double r198554 = r198553 * r198538;
double r198555 = r198550 - r198554;
double r198556 = r198541 * r198555;
double r198557 = r198552 + r198556;
double r198558 = r198549 * r198557;
double r198559 = r198548 + r198558;
double r198560 = r198559 - r198550;
return r198560;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied add-sqr-sqrt0.2
Applied unpow-prod-down0.2
rmApplied *-un-lft-identity0.2
Applied sqrt-prod0.2
Applied unpow-prod-down0.2
Applied *-un-lft-identity0.2
Applied sqrt-prod0.2
Applied unpow-prod-down0.2
Applied swap-sqr0.2
Simplified0.2
Simplified0.0
Final simplification0.0
herbie shell --seed 2019318
(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))