\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 r166297 = a;
double r166298 = r166297 * r166297;
double r166299 = b;
double r166300 = r166299 * r166299;
double r166301 = r166298 + r166300;
double r166302 = 2.0;
double r166303 = pow(r166301, r166302);
double r166304 = 4.0;
double r166305 = 1.0;
double r166306 = r166305 + r166297;
double r166307 = r166298 * r166306;
double r166308 = 3.0;
double r166309 = r166308 * r166297;
double r166310 = r166305 - r166309;
double r166311 = r166300 * r166310;
double r166312 = r166307 + r166311;
double r166313 = r166304 * r166312;
double r166314 = r166303 + r166313;
double r166315 = r166314 - r166305;
return r166315;
}
double f(double a, double b) {
double r166316 = a;
double r166317 = r166316 * r166316;
double r166318 = b;
double r166319 = r166318 * r166318;
double r166320 = r166317 + r166319;
double r166321 = 2.0;
double r166322 = pow(r166320, r166321);
double r166323 = 4.0;
double r166324 = 1.0;
double r166325 = r166324 + r166316;
double r166326 = r166317 * r166325;
double r166327 = 3.0;
double r166328 = r166327 * r166316;
double r166329 = r166324 - r166328;
double r166330 = r166319 * r166329;
double r166331 = r166326 + r166330;
double r166332 = r166323 * r166331;
double r166333 = r166322 + r166332;
double r166334 = r166333 - r166324;
return r166334;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2019208
(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))