\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} + 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) - 1double f(double a, double b) {
double r125372 = a;
double r125373 = r125372 * r125372;
double r125374 = b;
double r125375 = r125374 * r125374;
double r125376 = r125373 + r125375;
double r125377 = 2.0;
double r125378 = pow(r125376, r125377);
double r125379 = 4.0;
double r125380 = 1.0;
double r125381 = r125380 + r125372;
double r125382 = r125373 * r125381;
double r125383 = 3.0;
double r125384 = r125383 * r125372;
double r125385 = r125380 - r125384;
double r125386 = r125375 * r125385;
double r125387 = r125382 + r125386;
double r125388 = r125379 * r125387;
double r125389 = r125378 + r125388;
double r125390 = r125389 - r125380;
return r125390;
}
double f(double a, double b) {
double r125391 = a;
double r125392 = r125391 * r125391;
double r125393 = b;
double r125394 = r125393 * r125393;
double r125395 = r125392 + r125394;
double r125396 = 2.0;
double r125397 = pow(r125395, r125396);
double r125398 = 4.0;
double r125399 = 1.0;
double r125400 = r125399 + r125391;
double r125401 = r125392 * r125400;
double r125402 = 3.0;
double r125403 = r125402 * r125391;
double r125404 = r125399 - r125403;
double r125405 = r125394 * r125404;
double r125406 = r125401 + r125405;
double r125407 = r125398 * r125406;
double r125408 = r125397 + r125407;
double r125409 = r125408 - r125399;
return r125409;
}



Bits error versus a



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