\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(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{2}\right) - 1double f(double a, double b) {
double r248326 = a;
double r248327 = r248326 * r248326;
double r248328 = b;
double r248329 = r248328 * r248328;
double r248330 = r248327 + r248329;
double r248331 = 2.0;
double r248332 = pow(r248330, r248331);
double r248333 = 4.0;
double r248334 = r248333 * r248329;
double r248335 = r248332 + r248334;
double r248336 = 1.0;
double r248337 = r248335 - r248336;
return r248337;
}
double f(double a, double b) {
double r248338 = 4.0;
double r248339 = b;
double r248340 = r248338 * r248339;
double r248341 = a;
double r248342 = r248339 * r248339;
double r248343 = fma(r248341, r248341, r248342);
double r248344 = 2.0;
double r248345 = pow(r248343, r248344);
double r248346 = fma(r248340, r248339, r248345);
double r248347 = 1.0;
double r248348 = r248346 - r248347;
return r248348;
}



Bits error versus a



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