\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 r329260 = a;
double r329261 = r329260 * r329260;
double r329262 = b;
double r329263 = r329262 * r329262;
double r329264 = r329261 + r329263;
double r329265 = 2.0;
double r329266 = pow(r329264, r329265);
double r329267 = 4.0;
double r329268 = 1.0;
double r329269 = r329268 + r329260;
double r329270 = r329261 * r329269;
double r329271 = 3.0;
double r329272 = r329271 * r329260;
double r329273 = r329268 - r329272;
double r329274 = r329263 * r329273;
double r329275 = r329270 + r329274;
double r329276 = r329267 * r329275;
double r329277 = r329266 + r329276;
double r329278 = r329277 - r329268;
return r329278;
}
double f(double a, double b) {
double r329279 = a;
double r329280 = r329279 * r329279;
double r329281 = b;
double r329282 = r329281 * r329281;
double r329283 = r329280 + r329282;
double r329284 = 2.0;
double r329285 = pow(r329283, r329284);
double r329286 = 4.0;
double r329287 = 1.0;
double r329288 = r329287 + r329279;
double r329289 = r329280 * r329288;
double r329290 = 3.0;
double r329291 = r329290 * r329279;
double r329292 = r329287 - r329291;
double r329293 = r329282 * r329292;
double r329294 = r329289 + r329293;
double r329295 = r329286 * r329294;
double r329296 = r329285 + r329295;
double r329297 = r329296 - r329287;
return r329297;
}



Bits error versus a



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