\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({\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) - 1double f(double a, double b) {
double r276230 = a;
double r276231 = r276230 * r276230;
double r276232 = b;
double r276233 = r276232 * r276232;
double r276234 = r276231 + r276233;
double r276235 = 2.0;
double r276236 = pow(r276234, r276235);
double r276237 = 4.0;
double r276238 = 1.0;
double r276239 = r276238 - r276230;
double r276240 = r276231 * r276239;
double r276241 = 3.0;
double r276242 = r276241 + r276230;
double r276243 = r276233 * r276242;
double r276244 = r276240 + r276243;
double r276245 = r276237 * r276244;
double r276246 = r276236 + r276245;
double r276247 = r276246 - r276238;
return r276247;
}
double f(double a, double b) {
double r276248 = a;
double r276249 = r276248 * r276248;
double r276250 = b;
double r276251 = r276250 * r276250;
double r276252 = r276249 + r276251;
double r276253 = 2.0;
double r276254 = pow(r276252, r276253);
double r276255 = 4.0;
double r276256 = 1.0;
double r276257 = r276256 - r276248;
double r276258 = r276249 * r276257;
double r276259 = 3.0;
double r276260 = r276259 + r276248;
double r276261 = r276251 * r276260;
double r276262 = r276258 + r276261;
double r276263 = r276255 * r276262;
double r276264 = r276254 + r276263;
double r276265 = r276264 - r276256;
return r276265;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2020018
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))