\left({\left(a \cdot a + b \cdot b\right)}^{2.0} + 4.0 \cdot \left(\left(a \cdot a\right) \cdot \left(1.0 - a\right) + \left(b \cdot b\right) \cdot \left(3.0 + a\right)\right)\right) - 1.0\left({\left(a \cdot a + b \cdot b\right)}^{2.0} + \left(\frac{\left(1.0 \cdot 1.0 - a \cdot a\right) \cdot \left(a \cdot a\right)}{a + 1.0} + \left(3.0 + a\right) \cdot \left(b \cdot b\right)\right) \cdot 4.0\right) - 1.0double f(double a, double b) {
double r6703235 = a;
double r6703236 = r6703235 * r6703235;
double r6703237 = b;
double r6703238 = r6703237 * r6703237;
double r6703239 = r6703236 + r6703238;
double r6703240 = 2.0;
double r6703241 = pow(r6703239, r6703240);
double r6703242 = 4.0;
double r6703243 = 1.0;
double r6703244 = r6703243 - r6703235;
double r6703245 = r6703236 * r6703244;
double r6703246 = 3.0;
double r6703247 = r6703246 + r6703235;
double r6703248 = r6703238 * r6703247;
double r6703249 = r6703245 + r6703248;
double r6703250 = r6703242 * r6703249;
double r6703251 = r6703241 + r6703250;
double r6703252 = r6703251 - r6703243;
return r6703252;
}
double f(double a, double b) {
double r6703253 = a;
double r6703254 = r6703253 * r6703253;
double r6703255 = b;
double r6703256 = r6703255 * r6703255;
double r6703257 = r6703254 + r6703256;
double r6703258 = 2.0;
double r6703259 = pow(r6703257, r6703258);
double r6703260 = 1.0;
double r6703261 = r6703260 * r6703260;
double r6703262 = r6703261 - r6703254;
double r6703263 = r6703262 * r6703254;
double r6703264 = r6703253 + r6703260;
double r6703265 = r6703263 / r6703264;
double r6703266 = 3.0;
double r6703267 = r6703266 + r6703253;
double r6703268 = r6703267 * r6703256;
double r6703269 = r6703265 + r6703268;
double r6703270 = 4.0;
double r6703271 = r6703269 * r6703270;
double r6703272 = r6703259 + r6703271;
double r6703273 = r6703272 - r6703260;
return r6703273;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied flip--0.2
Applied associate-*r/0.2
Final simplification0.2
herbie shell --seed 2019165 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
(- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (- 1.0 a)) (* (* b b) (+ 3.0 a))))) 1.0))