\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} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4\right) - 1double f(double a, double b) {
double r3447434 = a;
double r3447435 = r3447434 * r3447434;
double r3447436 = b;
double r3447437 = r3447436 * r3447436;
double r3447438 = r3447435 + r3447437;
double r3447439 = 2.0;
double r3447440 = pow(r3447438, r3447439);
double r3447441 = 4.0;
double r3447442 = 1.0;
double r3447443 = r3447442 + r3447434;
double r3447444 = r3447435 * r3447443;
double r3447445 = 3.0;
double r3447446 = r3447445 * r3447434;
double r3447447 = r3447442 - r3447446;
double r3447448 = r3447437 * r3447447;
double r3447449 = r3447444 + r3447448;
double r3447450 = r3447441 * r3447449;
double r3447451 = r3447440 + r3447450;
double r3447452 = r3447451 - r3447442;
return r3447452;
}
double f(double a, double b) {
double r3447453 = a;
double r3447454 = r3447453 * r3447453;
double r3447455 = b;
double r3447456 = r3447455 * r3447455;
double r3447457 = r3447454 + r3447456;
double r3447458 = 2.0;
double r3447459 = pow(r3447457, r3447458);
double r3447460 = 1.0;
double r3447461 = r3447453 + r3447460;
double r3447462 = r3447454 * r3447461;
double r3447463 = 3.0;
double r3447464 = r3447463 * r3447453;
double r3447465 = r3447460 - r3447464;
double r3447466 = r3447456 * r3447465;
double r3447467 = r3447462 + r3447466;
double r3447468 = 4.0;
double r3447469 = r3447467 * r3447468;
double r3447470 = r3447459 + r3447469;
double r3447471 = r3447470 - r3447460;
return r3447471;
}



Bits error versus a



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