\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 r349403 = a;
double r349404 = r349403 * r349403;
double r349405 = b;
double r349406 = r349405 * r349405;
double r349407 = r349404 + r349406;
double r349408 = 2.0;
double r349409 = pow(r349407, r349408);
double r349410 = 4.0;
double r349411 = 1.0;
double r349412 = r349411 - r349403;
double r349413 = r349404 * r349412;
double r349414 = 3.0;
double r349415 = r349414 + r349403;
double r349416 = r349406 * r349415;
double r349417 = r349413 + r349416;
double r349418 = r349410 * r349417;
double r349419 = r349409 + r349418;
double r349420 = r349419 - r349411;
return r349420;
}
double f(double a, double b) {
double r349421 = a;
double r349422 = r349421 * r349421;
double r349423 = b;
double r349424 = r349423 * r349423;
double r349425 = r349422 + r349424;
double r349426 = 2.0;
double r349427 = pow(r349425, r349426);
double r349428 = 4.0;
double r349429 = 1.0;
double r349430 = r349429 - r349421;
double r349431 = r349422 * r349430;
double r349432 = 3.0;
double r349433 = r349432 + r349421;
double r349434 = r349424 * r349433;
double r349435 = r349431 + r349434;
double r349436 = r349428 * r349435;
double r349437 = r349427 + r349436;
double r349438 = r349437 - r349429;
return r349438;
}



Bits error versus a



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