\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(3 + a\right)\right)\right) - 1\left(4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(3 + a\right) \cdot \left(b \cdot b\right)\right) + \left({a}^{4} + \left(b \cdot \left(b \cdot b + \left(a \cdot a\right) \cdot 2\right)\right) \cdot b\right)\right) - 1double f(double a, double b) {
double r6596347 = a;
double r6596348 = r6596347 * r6596347;
double r6596349 = b;
double r6596350 = r6596349 * r6596349;
double r6596351 = r6596348 + r6596350;
double r6596352 = 2.0;
double r6596353 = pow(r6596351, r6596352);
double r6596354 = 4.0;
double r6596355 = 1.0;
double r6596356 = r6596355 - r6596347;
double r6596357 = r6596348 * r6596356;
double r6596358 = 3.0;
double r6596359 = r6596358 + r6596347;
double r6596360 = r6596350 * r6596359;
double r6596361 = r6596357 + r6596360;
double r6596362 = r6596354 * r6596361;
double r6596363 = r6596353 + r6596362;
double r6596364 = r6596363 - r6596355;
return r6596364;
}
double f(double a, double b) {
double r6596365 = 4.0;
double r6596366 = a;
double r6596367 = r6596366 * r6596366;
double r6596368 = 1.0;
double r6596369 = r6596368 - r6596366;
double r6596370 = r6596367 * r6596369;
double r6596371 = 3.0;
double r6596372 = r6596371 + r6596366;
double r6596373 = b;
double r6596374 = r6596373 * r6596373;
double r6596375 = r6596372 * r6596374;
double r6596376 = r6596370 + r6596375;
double r6596377 = r6596365 * r6596376;
double r6596378 = pow(r6596366, r6596365);
double r6596379 = 2.0;
double r6596380 = r6596367 * r6596379;
double r6596381 = r6596374 + r6596380;
double r6596382 = r6596373 * r6596381;
double r6596383 = r6596382 * r6596373;
double r6596384 = r6596378 + r6596383;
double r6596385 = r6596377 + r6596384;
double r6596386 = r6596385 - r6596368;
return r6596386;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Taylor expanded around inf 0.0
Simplified0.2
rmApplied pow10.2
Applied pow10.2
Applied pow-prod-up0.2
Applied pow10.2
Applied pow10.2
Applied pow-prod-up0.2
Applied pow-sqr0.1
Simplified0.1
rmApplied associate-*l*0.1
Final simplification0.1
herbie shell --seed 2019130 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))