\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 r254191 = a;
double r254192 = r254191 * r254191;
double r254193 = b;
double r254194 = r254193 * r254193;
double r254195 = r254192 + r254194;
double r254196 = 2.0;
double r254197 = pow(r254195, r254196);
double r254198 = 4.0;
double r254199 = r254198 * r254194;
double r254200 = r254197 + r254199;
double r254201 = 1.0;
double r254202 = r254200 - r254201;
return r254202;
}
double f(double a, double b) {
double r254203 = 4.0;
double r254204 = b;
double r254205 = r254203 * r254204;
double r254206 = a;
double r254207 = r254204 * r254204;
double r254208 = fma(r254206, r254206, r254207);
double r254209 = 2.0;
double r254210 = pow(r254208, r254209);
double r254211 = fma(r254205, r254204, r254210);
double r254212 = 1.0;
double r254213 = r254211 - r254212;
return r254213;
}



Bits error versus a



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