\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(\left(1 - 3 \cdot a\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 + a\right)\right) \cdot 4 + \left(\left(b \cdot \left(2 \cdot \left(a \cdot a\right) + b \cdot b\right)\right) \cdot b + {a}^{4}\right)\right) - 1double f(double a, double b) {
double r25425348 = a;
double r25425349 = r25425348 * r25425348;
double r25425350 = b;
double r25425351 = r25425350 * r25425350;
double r25425352 = r25425349 + r25425351;
double r25425353 = 2.0;
double r25425354 = pow(r25425352, r25425353);
double r25425355 = 4.0;
double r25425356 = 1.0;
double r25425357 = r25425356 + r25425348;
double r25425358 = r25425349 * r25425357;
double r25425359 = 3.0;
double r25425360 = r25425359 * r25425348;
double r25425361 = r25425356 - r25425360;
double r25425362 = r25425351 * r25425361;
double r25425363 = r25425358 + r25425362;
double r25425364 = r25425355 * r25425363;
double r25425365 = r25425354 + r25425364;
double r25425366 = r25425365 - r25425356;
return r25425366;
}
double f(double a, double b) {
double r25425367 = 1.0;
double r25425368 = 3.0;
double r25425369 = a;
double r25425370 = r25425368 * r25425369;
double r25425371 = r25425367 - r25425370;
double r25425372 = b;
double r25425373 = r25425372 * r25425372;
double r25425374 = r25425371 * r25425373;
double r25425375 = r25425369 * r25425369;
double r25425376 = r25425367 + r25425369;
double r25425377 = r25425375 * r25425376;
double r25425378 = r25425374 + r25425377;
double r25425379 = 4.0;
double r25425380 = r25425378 * r25425379;
double r25425381 = 2.0;
double r25425382 = r25425381 * r25425375;
double r25425383 = r25425382 + r25425373;
double r25425384 = r25425372 * r25425383;
double r25425385 = r25425384 * r25425372;
double r25425386 = pow(r25425369, r25425379);
double r25425387 = r25425385 + r25425386;
double r25425388 = r25425380 + r25425387;
double r25425389 = r25425388 - r25425367;
return r25425389;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Taylor expanded around 0 0.0
Simplified0.2
rmApplied associate-*r*0.2
Taylor expanded around -inf 0.1
Final simplification0.1
herbie shell --seed 2019121
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (+ 1 a)) (* (* b b) (- 1 (* 3 a)))))) 1))