\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\mathsf{fma}\left(4 \cdot b, b, {\left(a \cdot a + b \cdot b\right)}^{2} - 1\right)double f(double a, double b) {
double r309291 = a;
double r309292 = r309291 * r309291;
double r309293 = b;
double r309294 = r309293 * r309293;
double r309295 = r309292 + r309294;
double r309296 = 2.0;
double r309297 = pow(r309295, r309296);
double r309298 = 4.0;
double r309299 = r309298 * r309294;
double r309300 = r309297 + r309299;
double r309301 = 1.0;
double r309302 = r309300 - r309301;
return r309302;
}
double f(double a, double b) {
double r309303 = 4.0;
double r309304 = b;
double r309305 = r309303 * r309304;
double r309306 = a;
double r309307 = r309306 * r309306;
double r309308 = r309304 * r309304;
double r309309 = r309307 + r309308;
double r309310 = 2.0;
double r309311 = pow(r309309, r309310);
double r309312 = 1.0;
double r309313 = r309311 - r309312;
double r309314 = fma(r309305, r309304, r309313);
return r309314;
}



Bits error versus a



Bits error versus b
Initial program 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020002 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (26)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (* b b))) 1))