\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 r6271507 = a;
double r6271508 = r6271507 * r6271507;
double r6271509 = b;
double r6271510 = r6271509 * r6271509;
double r6271511 = r6271508 + r6271510;
double r6271512 = 2.0;
double r6271513 = pow(r6271511, r6271512);
double r6271514 = 4.0;
double r6271515 = 1.0;
double r6271516 = r6271515 - r6271507;
double r6271517 = r6271508 * r6271516;
double r6271518 = 3.0;
double r6271519 = r6271518 + r6271507;
double r6271520 = r6271510 * r6271519;
double r6271521 = r6271517 + r6271520;
double r6271522 = r6271514 * r6271521;
double r6271523 = r6271513 + r6271522;
double r6271524 = r6271523 - r6271515;
return r6271524;
}
double f(double a, double b) {
double r6271525 = 4.0;
double r6271526 = a;
double r6271527 = r6271526 * r6271526;
double r6271528 = 1.0;
double r6271529 = r6271528 - r6271526;
double r6271530 = r6271527 * r6271529;
double r6271531 = 3.0;
double r6271532 = r6271531 + r6271526;
double r6271533 = b;
double r6271534 = r6271533 * r6271533;
double r6271535 = r6271532 * r6271534;
double r6271536 = r6271530 + r6271535;
double r6271537 = r6271525 * r6271536;
double r6271538 = pow(r6271526, r6271525);
double r6271539 = 2.0;
double r6271540 = r6271527 * r6271539;
double r6271541 = r6271534 + r6271540;
double r6271542 = r6271533 * r6271541;
double r6271543 = r6271542 * r6271533;
double r6271544 = r6271538 + r6271543;
double r6271545 = r6271537 + r6271544;
double r6271546 = r6271545 - r6271528;
return r6271546;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Taylor expanded around 0 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-prod-up0.1
Simplified0.1
rmApplied associate-*l*0.1
Final simplification0.1
herbie shell --seed 2019153
(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))