\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 r242268 = a;
double r242269 = r242268 * r242268;
double r242270 = b;
double r242271 = r242270 * r242270;
double r242272 = r242269 + r242271;
double r242273 = 2.0;
double r242274 = pow(r242272, r242273);
double r242275 = 4.0;
double r242276 = 1.0;
double r242277 = r242276 + r242268;
double r242278 = r242269 * r242277;
double r242279 = 3.0;
double r242280 = r242279 * r242268;
double r242281 = r242276 - r242280;
double r242282 = r242271 * r242281;
double r242283 = r242278 + r242282;
double r242284 = r242275 * r242283;
double r242285 = r242274 + r242284;
double r242286 = r242285 - r242276;
return r242286;
}
double f(double a, double b) {
double r242287 = a;
double r242288 = r242287 * r242287;
double r242289 = b;
double r242290 = r242289 * r242289;
double r242291 = r242288 + r242290;
double r242292 = 2.0;
double r242293 = pow(r242291, r242292);
double r242294 = 4.0;
double r242295 = 1.0;
double r242296 = r242295 + r242287;
double r242297 = r242288 * r242296;
double r242298 = 3.0;
double r242299 = r242298 * r242287;
double r242300 = r242295 - r242299;
double r242301 = r242290 * r242300;
double r242302 = r242297 + r242301;
double r242303 = r242294 * r242302;
double r242304 = r242293 + r242303;
double r242305 = r242304 - r242295;
return r242305;
}



Bits error versus a



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