\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(1 - 3 \cdot 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(1 - 3 \cdot a\right)\right)\right) - 1double f(double a, double b) {
double r186262 = a;
double r186263 = r186262 * r186262;
double r186264 = b;
double r186265 = r186264 * r186264;
double r186266 = r186263 + r186265;
double r186267 = 2.0;
double r186268 = pow(r186266, r186267);
double r186269 = 4.0;
double r186270 = 1.0;
double r186271 = r186270 + r186262;
double r186272 = r186263 * r186271;
double r186273 = 3.0;
double r186274 = r186273 * r186262;
double r186275 = r186270 - r186274;
double r186276 = r186265 * r186275;
double r186277 = r186272 + r186276;
double r186278 = r186269 * r186277;
double r186279 = r186268 + r186278;
double r186280 = r186279 - r186270;
return r186280;
}
double f(double a, double b) {
double r186281 = a;
double r186282 = r186281 * r186281;
double r186283 = b;
double r186284 = r186283 * r186283;
double r186285 = r186282 + r186284;
double r186286 = 2.0;
double r186287 = pow(r186285, r186286);
double r186288 = 4.0;
double r186289 = 1.0;
double r186290 = r186289 + r186281;
double r186291 = r186282 * r186290;
double r186292 = 3.0;
double r186293 = r186292 * r186281;
double r186294 = r186289 - r186293;
double r186295 = r186284 * r186294;
double r186296 = r186291 + r186295;
double r186297 = r186288 * r186296;
double r186298 = r186287 + r186297;
double r186299 = r186298 - r186289;
return r186299;
}



Bits error versus a



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