\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(a + 3\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 r8147711 = a;
double r8147712 = r8147711 * r8147711;
double r8147713 = b;
double r8147714 = r8147713 * r8147713;
double r8147715 = r8147712 + r8147714;
double r8147716 = 2.0;
double r8147717 = pow(r8147715, r8147716);
double r8147718 = 4.0;
double r8147719 = 1.0;
double r8147720 = r8147719 - r8147711;
double r8147721 = r8147712 * r8147720;
double r8147722 = 3.0;
double r8147723 = r8147722 + r8147711;
double r8147724 = r8147714 * r8147723;
double r8147725 = r8147721 + r8147724;
double r8147726 = r8147718 * r8147725;
double r8147727 = r8147717 + r8147726;
double r8147728 = r8147727 - r8147719;
return r8147728;
}
double f(double a, double b) {
double r8147729 = 4.0;
double r8147730 = a;
double r8147731 = r8147730 * r8147730;
double r8147732 = 1.0;
double r8147733 = r8147732 - r8147730;
double r8147734 = r8147731 * r8147733;
double r8147735 = 3.0;
double r8147736 = r8147730 + r8147735;
double r8147737 = b;
double r8147738 = r8147737 * r8147737;
double r8147739 = r8147736 * r8147738;
double r8147740 = r8147734 + r8147739;
double r8147741 = r8147729 * r8147740;
double r8147742 = pow(r8147730, r8147729);
double r8147743 = 2.0;
double r8147744 = r8147731 * r8147743;
double r8147745 = r8147738 + r8147744;
double r8147746 = r8147737 * r8147745;
double r8147747 = r8147746 * r8147737;
double r8147748 = r8147742 + r8147747;
double r8147749 = r8147741 + r8147748;
double r8147750 = r8147749 - r8147732;
return r8147750;
}



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