\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({\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 r86448 = a;
double r86449 = r86448 * r86448;
double r86450 = b;
double r86451 = r86450 * r86450;
double r86452 = r86449 + r86451;
double r86453 = 2.0;
double r86454 = pow(r86452, r86453);
double r86455 = 4.0;
double r86456 = 1.0;
double r86457 = r86456 + r86448;
double r86458 = r86449 * r86457;
double r86459 = 3.0;
double r86460 = r86459 * r86448;
double r86461 = r86456 - r86460;
double r86462 = r86451 * r86461;
double r86463 = r86458 + r86462;
double r86464 = r86455 * r86463;
double r86465 = r86454 + r86464;
double r86466 = r86465 - r86456;
return r86466;
}
double f(double a, double b) {
double r86467 = a;
double r86468 = r86467 * r86467;
double r86469 = b;
double r86470 = r86469 * r86469;
double r86471 = r86468 + r86470;
double r86472 = 2.0;
double r86473 = pow(r86471, r86472);
double r86474 = 4.0;
double r86475 = 1.0;
double r86476 = r86475 + r86467;
double r86477 = r86468 * r86476;
double r86478 = 3.0;
double r86479 = r86478 * r86467;
double r86480 = r86475 - r86479;
double r86481 = r86470 * r86480;
double r86482 = r86477 + r86481;
double r86483 = r86474 * r86482;
double r86484 = r86473 + r86483;
double r86485 = r86484 - r86475;
return r86485;
}



Bits error versus a



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