\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 r228295 = a;
double r228296 = r228295 * r228295;
double r228297 = b;
double r228298 = r228297 * r228297;
double r228299 = r228296 + r228298;
double r228300 = 2.0;
double r228301 = pow(r228299, r228300);
double r228302 = 4.0;
double r228303 = 1.0;
double r228304 = r228303 - r228295;
double r228305 = r228296 * r228304;
double r228306 = 3.0;
double r228307 = r228306 + r228295;
double r228308 = r228298 * r228307;
double r228309 = r228305 + r228308;
double r228310 = r228302 * r228309;
double r228311 = r228301 + r228310;
double r228312 = r228311 - r228303;
return r228312;
}
double f(double a, double b) {
double r228313 = a;
double r228314 = r228313 * r228313;
double r228315 = b;
double r228316 = r228315 * r228315;
double r228317 = r228314 + r228316;
double r228318 = 2.0;
double r228319 = pow(r228317, r228318);
double r228320 = 4.0;
double r228321 = 1.0;
double r228322 = r228321 - r228313;
double r228323 = r228314 * r228322;
double r228324 = 3.0;
double r228325 = r228324 + r228313;
double r228326 = r228316 * r228325;
double r228327 = r228323 + r228326;
double r228328 = r228320 * r228327;
double r228329 = r228319 + r228328;
double r228330 = r228329 - r228321;
return r228330;
}



Bits error versus a



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