\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(\left(b \cdot \left(2 \cdot \left(a \cdot a\right) + b \cdot b\right)\right) \cdot b + {a}^{4}\right)\right) - 1double f(double a, double b) {
double r43725273 = a;
double r43725274 = r43725273 * r43725273;
double r43725275 = b;
double r43725276 = r43725275 * r43725275;
double r43725277 = r43725274 + r43725276;
double r43725278 = 2.0;
double r43725279 = pow(r43725277, r43725278);
double r43725280 = 4.0;
double r43725281 = 1.0;
double r43725282 = r43725281 - r43725273;
double r43725283 = r43725274 * r43725282;
double r43725284 = 3.0;
double r43725285 = r43725284 + r43725273;
double r43725286 = r43725276 * r43725285;
double r43725287 = r43725283 + r43725286;
double r43725288 = r43725280 * r43725287;
double r43725289 = r43725279 + r43725288;
double r43725290 = r43725289 - r43725281;
return r43725290;
}
double f(double a, double b) {
double r43725291 = 4.0;
double r43725292 = a;
double r43725293 = r43725292 * r43725292;
double r43725294 = 1.0;
double r43725295 = r43725294 - r43725292;
double r43725296 = r43725293 * r43725295;
double r43725297 = b;
double r43725298 = r43725297 * r43725297;
double r43725299 = 3.0;
double r43725300 = r43725299 + r43725292;
double r43725301 = r43725298 * r43725300;
double r43725302 = r43725296 + r43725301;
double r43725303 = r43725291 * r43725302;
double r43725304 = 2.0;
double r43725305 = r43725304 * r43725293;
double r43725306 = r43725305 + r43725298;
double r43725307 = r43725297 * r43725306;
double r43725308 = r43725307 * r43725297;
double r43725309 = pow(r43725292, r43725291);
double r43725310 = r43725308 + r43725309;
double r43725311 = r43725303 + r43725310;
double r43725312 = r43725311 - r43725294;
return r43725312;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Taylor expanded around 0 0.0
Simplified0.2
rmApplied associate-*r*0.2
Taylor expanded around inf 0.1
Final simplification0.1
herbie shell --seed 2019121
(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))