\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 r145369 = a;
double r145370 = r145369 * r145369;
double r145371 = b;
double r145372 = r145371 * r145371;
double r145373 = r145370 + r145372;
double r145374 = 2.0;
double r145375 = pow(r145373, r145374);
double r145376 = 4.0;
double r145377 = 1.0;
double r145378 = r145377 + r145369;
double r145379 = r145370 * r145378;
double r145380 = 3.0;
double r145381 = r145380 * r145369;
double r145382 = r145377 - r145381;
double r145383 = r145372 * r145382;
double r145384 = r145379 + r145383;
double r145385 = r145376 * r145384;
double r145386 = r145375 + r145385;
double r145387 = r145386 - r145377;
return r145387;
}
double f(double a, double b) {
double r145388 = a;
double r145389 = r145388 * r145388;
double r145390 = b;
double r145391 = r145390 * r145390;
double r145392 = r145389 + r145391;
double r145393 = 2.0;
double r145394 = pow(r145392, r145393);
double r145395 = 4.0;
double r145396 = 1.0;
double r145397 = r145396 + r145388;
double r145398 = r145389 * r145397;
double r145399 = 3.0;
double r145400 = r145399 * r145388;
double r145401 = r145396 - r145400;
double r145402 = r145391 * r145401;
double r145403 = r145398 + r145402;
double r145404 = r145395 * r145403;
double r145405 = r145394 + r145404;
double r145406 = r145405 - r145396;
return r145406;
}



Bits error versus a



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