\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(\sqrt{\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{\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)}}\right) \cdot \left(\sqrt{\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{\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)}}\right) - 1double f(double a, double b) {
double r156460 = a;
double r156461 = r156460 * r156460;
double r156462 = b;
double r156463 = r156462 * r156462;
double r156464 = r156461 + r156463;
double r156465 = 2.0;
double r156466 = pow(r156464, r156465);
double r156467 = 4.0;
double r156468 = 1.0;
double r156469 = r156468 + r156460;
double r156470 = r156461 * r156469;
double r156471 = 3.0;
double r156472 = r156471 * r156460;
double r156473 = r156468 - r156472;
double r156474 = r156463 * r156473;
double r156475 = r156470 + r156474;
double r156476 = r156467 * r156475;
double r156477 = r156466 + r156476;
double r156478 = r156477 - r156468;
return r156478;
}
double f(double a, double b) {
double r156479 = a;
double r156480 = r156479 * r156479;
double r156481 = b;
double r156482 = r156481 * r156481;
double r156483 = r156480 + r156482;
double r156484 = 2.0;
double r156485 = pow(r156483, r156484);
double r156486 = 4.0;
double r156487 = 1.0;
double r156488 = r156487 + r156479;
double r156489 = r156480 * r156488;
double r156490 = 3.0;
double r156491 = r156490 * r156479;
double r156492 = r156487 - r156491;
double r156493 = r156482 * r156492;
double r156494 = r156489 + r156493;
double r156495 = r156486 * r156494;
double r156496 = r156485 + r156495;
double r156497 = sqrt(r156496);
double r156498 = sqrt(r156497);
double r156499 = r156498 * r156498;
double r156500 = r156499 * r156499;
double r156501 = r156500 - r156487;
return r156501;
}



Bits error versus a



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