\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 r13578368 = a;
double r13578369 = r13578368 * r13578368;
double r13578370 = b;
double r13578371 = r13578370 * r13578370;
double r13578372 = r13578369 + r13578371;
double r13578373 = 2.0;
double r13578374 = pow(r13578372, r13578373);
double r13578375 = 4.0;
double r13578376 = 1.0;
double r13578377 = r13578376 + r13578368;
double r13578378 = r13578369 * r13578377;
double r13578379 = 3.0;
double r13578380 = r13578379 * r13578368;
double r13578381 = r13578376 - r13578380;
double r13578382 = r13578371 * r13578381;
double r13578383 = r13578378 + r13578382;
double r13578384 = r13578375 * r13578383;
double r13578385 = r13578374 + r13578384;
double r13578386 = r13578385 - r13578376;
return r13578386;
}
double f(double a, double b) {
double r13578387 = a;
double r13578388 = r13578387 * r13578387;
double r13578389 = b;
double r13578390 = r13578389 * r13578389;
double r13578391 = r13578388 + r13578390;
double r13578392 = 2.0;
double r13578393 = pow(r13578391, r13578392);
double r13578394 = 1.0;
double r13578395 = r13578387 + r13578394;
double r13578396 = r13578388 * r13578395;
double r13578397 = 3.0;
double r13578398 = r13578397 * r13578387;
double r13578399 = r13578394 - r13578398;
double r13578400 = r13578390 * r13578399;
double r13578401 = r13578396 + r13578400;
double r13578402 = 4.0;
double r13578403 = r13578401 * r13578402;
double r13578404 = r13578393 + r13578403;
double r13578405 = r13578404 - r13578394;
return r13578405;
}



Bits error versus a



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