\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 r320697 = a;
double r320698 = r320697 * r320697;
double r320699 = b;
double r320700 = r320699 * r320699;
double r320701 = r320698 + r320700;
double r320702 = 2.0;
double r320703 = pow(r320701, r320702);
double r320704 = 4.0;
double r320705 = r320704 * r320700;
double r320706 = r320703 + r320705;
double r320707 = 1.0;
double r320708 = r320706 - r320707;
return r320708;
}
double f(double a, double b) {
double r320709 = 4.0;
double r320710 = b;
double r320711 = r320709 * r320710;
double r320712 = a;
double r320713 = r320712 * r320712;
double r320714 = r320710 * r320710;
double r320715 = r320713 + r320714;
double r320716 = 2.0;
double r320717 = pow(r320715, r320716);
double r320718 = 1.0;
double r320719 = r320717 - r320718;
double r320720 = fma(r320711, r320710, r320719);
return r320720;
}



Bits error versus a



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