\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(b \cdot b\right) \cdot \left(3 + a\right)\right) + \left(b \cdot \left(\left(b \cdot b + 2 \cdot \left(a \cdot a\right)\right) \cdot b\right) + {a}^{4}\right)\right) - 1double f(double a, double b) {
double r7931719 = a;
double r7931720 = r7931719 * r7931719;
double r7931721 = b;
double r7931722 = r7931721 * r7931721;
double r7931723 = r7931720 + r7931722;
double r7931724 = 2.0;
double r7931725 = pow(r7931723, r7931724);
double r7931726 = 4.0;
double r7931727 = 1.0;
double r7931728 = r7931727 - r7931719;
double r7931729 = r7931720 * r7931728;
double r7931730 = 3.0;
double r7931731 = r7931730 + r7931719;
double r7931732 = r7931722 * r7931731;
double r7931733 = r7931729 + r7931732;
double r7931734 = r7931726 * r7931733;
double r7931735 = r7931725 + r7931734;
double r7931736 = r7931735 - r7931727;
return r7931736;
}
double f(double a, double b) {
double r7931737 = 4.0;
double r7931738 = a;
double r7931739 = r7931738 * r7931738;
double r7931740 = 1.0;
double r7931741 = r7931740 - r7931738;
double r7931742 = r7931739 * r7931741;
double r7931743 = b;
double r7931744 = r7931743 * r7931743;
double r7931745 = 3.0;
double r7931746 = r7931745 + r7931738;
double r7931747 = r7931744 * r7931746;
double r7931748 = r7931742 + r7931747;
double r7931749 = r7931737 * r7931748;
double r7931750 = 2.0;
double r7931751 = r7931750 * r7931739;
double r7931752 = r7931744 + r7931751;
double r7931753 = r7931752 * r7931743;
double r7931754 = r7931743 * r7931753;
double r7931755 = pow(r7931738, r7931737);
double r7931756 = r7931754 + r7931755;
double r7931757 = r7931749 + r7931756;
double r7931758 = r7931757 - r7931740;
return r7931758;
}



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 pow-plus0.2
Applied pow20.2
Applied pow-prod-up0.1
Simplified0.1
rmApplied associate-*l*0.1
Final simplification0.1
herbie shell --seed 2019141
(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))