\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 r4161103 = a;
double r4161104 = r4161103 * r4161103;
double r4161105 = b;
double r4161106 = r4161105 * r4161105;
double r4161107 = r4161104 + r4161106;
double r4161108 = 2.0;
double r4161109 = pow(r4161107, r4161108);
double r4161110 = 4.0;
double r4161111 = 1.0;
double r4161112 = r4161111 - r4161103;
double r4161113 = r4161104 * r4161112;
double r4161114 = 3.0;
double r4161115 = r4161114 + r4161103;
double r4161116 = r4161106 * r4161115;
double r4161117 = r4161113 + r4161116;
double r4161118 = r4161110 * r4161117;
double r4161119 = r4161109 + r4161118;
double r4161120 = r4161119 - r4161111;
return r4161120;
}
double f(double a, double b) {
double r4161121 = 4.0;
double r4161122 = a;
double r4161123 = r4161122 * r4161122;
double r4161124 = 1.0;
double r4161125 = r4161124 - r4161122;
double r4161126 = r4161123 * r4161125;
double r4161127 = 3.0;
double r4161128 = r4161127 + r4161122;
double r4161129 = b;
double r4161130 = r4161129 * r4161129;
double r4161131 = r4161128 * r4161130;
double r4161132 = r4161126 + r4161131;
double r4161133 = r4161121 * r4161132;
double r4161134 = pow(r4161122, r4161121);
double r4161135 = 2.0;
double r4161136 = r4161123 * r4161135;
double r4161137 = r4161130 + r4161136;
double r4161138 = r4161129 * r4161137;
double r4161139 = r4161138 * r4161129;
double r4161140 = r4161134 + r4161139;
double r4161141 = r4161133 + r4161140;
double r4161142 = r4161141 - r4161124;
return r4161142;
}



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-sqr0.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))