\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 r304358 = a;
double r304359 = r304358 * r304358;
double r304360 = b;
double r304361 = r304360 * r304360;
double r304362 = r304359 + r304361;
double r304363 = 2.0;
double r304364 = pow(r304362, r304363);
double r304365 = 4.0;
double r304366 = 1.0;
double r304367 = r304366 - r304358;
double r304368 = r304359 * r304367;
double r304369 = 3.0;
double r304370 = r304369 + r304358;
double r304371 = r304361 * r304370;
double r304372 = r304368 + r304371;
double r304373 = r304365 * r304372;
double r304374 = r304364 + r304373;
double r304375 = r304374 - r304366;
return r304375;
}
double f(double a, double b) {
double r304376 = a;
double r304377 = r304376 * r304376;
double r304378 = b;
double r304379 = r304378 * r304378;
double r304380 = r304377 + r304379;
double r304381 = 2.0;
double r304382 = pow(r304380, r304381);
double r304383 = 4.0;
double r304384 = 1.0;
double r304385 = r304384 - r304376;
double r304386 = r304377 * r304385;
double r304387 = 3.0;
double r304388 = r304387 + r304376;
double r304389 = r304379 * r304388;
double r304390 = r304386 + r304389;
double r304391 = r304383 * r304390;
double r304392 = r304382 + r304391;
double r304393 = r304392 - r304384;
return r304393;
}



Bits error versus a



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