\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(3 + 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(3 + a\right)\right)\right) - 1double f(double a, double b) {
double r392473 = a;
double r392474 = r392473 * r392473;
double r392475 = b;
double r392476 = r392475 * r392475;
double r392477 = r392474 + r392476;
double r392478 = 2.0;
double r392479 = pow(r392477, r392478);
double r392480 = 4.0;
double r392481 = 1.0;
double r392482 = r392481 - r392473;
double r392483 = r392474 * r392482;
double r392484 = 3.0;
double r392485 = r392484 + r392473;
double r392486 = r392476 * r392485;
double r392487 = r392483 + r392486;
double r392488 = r392480 * r392487;
double r392489 = r392479 + r392488;
double r392490 = r392489 - r392481;
return r392490;
}
double f(double a, double b) {
double r392491 = a;
double r392492 = r392491 * r392491;
double r392493 = b;
double r392494 = r392493 * r392493;
double r392495 = r392492 + r392494;
double r392496 = 2.0;
double r392497 = pow(r392495, r392496);
double r392498 = 4.0;
double r392499 = 1.0;
double r392500 = r392499 - r392491;
double r392501 = r392492 * r392500;
double r392502 = 3.0;
double r392503 = r392502 + r392491;
double r392504 = r392494 * r392503;
double r392505 = r392501 + r392504;
double r392506 = r392498 * r392505;
double r392507 = r392497 + r392506;
double r392508 = r392507 - r392499;
return r392508;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2020046
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))