\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\mathsf{fma}\left(4, \left(\mathsf{fma}\left(a, \left(\left(1 - a\right) \cdot a\right), \left(\left(a + 3\right) \cdot \left(b \cdot b\right)\right)\right)\right), \left(\mathsf{fma}\left(\left(\mathsf{fma}\left(b, b, \left(a \cdot a\right)\right)\right), \left(\mathsf{fma}\left(b, b, \left(a \cdot a\right)\right)\right), -1\right)\right)\right)double f(double a, double b) {
double r108209400 = a;
double r108209401 = r108209400 * r108209400;
double r108209402 = b;
double r108209403 = r108209402 * r108209402;
double r108209404 = r108209401 + r108209403;
double r108209405 = 2.0;
double r108209406 = pow(r108209404, r108209405);
double r108209407 = 4.0;
double r108209408 = 1.0;
double r108209409 = r108209408 - r108209400;
double r108209410 = r108209401 * r108209409;
double r108209411 = 3.0;
double r108209412 = r108209411 + r108209400;
double r108209413 = r108209403 * r108209412;
double r108209414 = r108209410 + r108209413;
double r108209415 = r108209407 * r108209414;
double r108209416 = r108209406 + r108209415;
double r108209417 = r108209416 - r108209408;
return r108209417;
}
double f(double a, double b) {
double r108209418 = 4.0;
double r108209419 = a;
double r108209420 = 1.0;
double r108209421 = r108209420 - r108209419;
double r108209422 = r108209421 * r108209419;
double r108209423 = 3.0;
double r108209424 = r108209419 + r108209423;
double r108209425 = b;
double r108209426 = r108209425 * r108209425;
double r108209427 = r108209424 * r108209426;
double r108209428 = fma(r108209419, r108209422, r108209427);
double r108209429 = r108209419 * r108209419;
double r108209430 = fma(r108209425, r108209425, r108209429);
double r108209431 = -1.0;
double r108209432 = fma(r108209430, r108209430, r108209431);
double r108209433 = fma(r108209418, r108209428, r108209432);
return r108209433;
}



Bits error versus a



Bits error versus b
Initial program 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019125 +o rules:numerics
(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))