\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(\sqrt{a \cdot a + b \cdot b}\right)}^{4} - \left(1 - \left(\left(\left(a + 3\right) \cdot \left(b \cdot b\right) + a \cdot a\right) - a \cdot \left(a \cdot a\right)\right) \cdot 4\right)double f(double a, double b) {
double r9343263 = a;
double r9343264 = r9343263 * r9343263;
double r9343265 = b;
double r9343266 = r9343265 * r9343265;
double r9343267 = r9343264 + r9343266;
double r9343268 = 2.0;
double r9343269 = pow(r9343267, r9343268);
double r9343270 = 4.0;
double r9343271 = 1.0;
double r9343272 = r9343271 - r9343263;
double r9343273 = r9343264 * r9343272;
double r9343274 = 3.0;
double r9343275 = r9343274 + r9343263;
double r9343276 = r9343266 * r9343275;
double r9343277 = r9343273 + r9343276;
double r9343278 = r9343270 * r9343277;
double r9343279 = r9343269 + r9343278;
double r9343280 = r9343279 - r9343271;
return r9343280;
}
double f(double a, double b) {
double r9343281 = a;
double r9343282 = r9343281 * r9343281;
double r9343283 = b;
double r9343284 = r9343283 * r9343283;
double r9343285 = r9343282 + r9343284;
double r9343286 = sqrt(r9343285);
double r9343287 = 4.0;
double r9343288 = pow(r9343286, r9343287);
double r9343289 = 1.0;
double r9343290 = 3.0;
double r9343291 = r9343281 + r9343290;
double r9343292 = r9343291 * r9343284;
double r9343293 = r9343292 + r9343282;
double r9343294 = r9343281 * r9343282;
double r9343295 = r9343293 - r9343294;
double r9343296 = r9343295 * r9343287;
double r9343297 = r9343289 - r9343296;
double r9343298 = r9343288 - r9343297;
return r9343298;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Simplified0.2
rmApplied add-sqr-sqrt0.2
Applied associate-*r*0.1
rmApplied add-sqr-sqrt0.1
Applied pow30.1
rmApplied pow10.1
Applied pow-prod-up0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019158
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))