\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} + \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4\right) - 1double f(double a, double b) {
double r7548371 = a;
double r7548372 = r7548371 * r7548371;
double r7548373 = b;
double r7548374 = r7548373 * r7548373;
double r7548375 = r7548372 + r7548374;
double r7548376 = 2.0;
double r7548377 = pow(r7548375, r7548376);
double r7548378 = 4.0;
double r7548379 = 1.0;
double r7548380 = r7548379 - r7548371;
double r7548381 = r7548372 * r7548380;
double r7548382 = 3.0;
double r7548383 = r7548382 + r7548371;
double r7548384 = r7548374 * r7548383;
double r7548385 = r7548381 + r7548384;
double r7548386 = r7548378 * r7548385;
double r7548387 = r7548377 + r7548386;
double r7548388 = r7548387 - r7548379;
return r7548388;
}
double f(double a, double b) {
double r7548389 = a;
double r7548390 = r7548389 * r7548389;
double r7548391 = b;
double r7548392 = r7548391 * r7548391;
double r7548393 = r7548390 + r7548392;
double r7548394 = 2.0;
double r7548395 = pow(r7548393, r7548394);
double r7548396 = 3.0;
double r7548397 = r7548389 + r7548396;
double r7548398 = r7548397 * r7548392;
double r7548399 = 1.0;
double r7548400 = r7548399 - r7548389;
double r7548401 = r7548390 * r7548400;
double r7548402 = r7548398 + r7548401;
double r7548403 = 4.0;
double r7548404 = r7548402 * r7548403;
double r7548405 = r7548395 + r7548404;
double r7548406 = r7548405 - r7548399;
return r7548406;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2019170
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
(- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (- 1.0 a)) (* (* b b) (+ 3.0 a))))) 1.0))