\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\left({\left({\left(a \cdot a + b \cdot b\right)}^{\frac{1}{2}} \cdot {\left(a \cdot a + b \cdot b\right)}^{\frac{1}{2}}\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1double f(double a, double b) {
double r207927 = a;
double r207928 = r207927 * r207927;
double r207929 = b;
double r207930 = r207929 * r207929;
double r207931 = r207928 + r207930;
double r207932 = 2.0;
double r207933 = pow(r207931, r207932);
double r207934 = 4.0;
double r207935 = r207934 * r207930;
double r207936 = r207933 + r207935;
double r207937 = 1.0;
double r207938 = r207936 - r207937;
return r207938;
}
double f(double a, double b) {
double r207939 = a;
double r207940 = r207939 * r207939;
double r207941 = b;
double r207942 = r207941 * r207941;
double r207943 = r207940 + r207942;
double r207944 = 0.5;
double r207945 = pow(r207943, r207944);
double r207946 = r207945 * r207945;
double r207947 = 2.0;
double r207948 = pow(r207946, r207947);
double r207949 = 4.0;
double r207950 = r207949 * r207942;
double r207951 = r207948 + r207950;
double r207952 = 1.0;
double r207953 = r207951 - r207952;
return r207953;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied add-sqr-sqrt0.2
Simplified0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019318
(FPCore (a b)
:name "Bouland and Aaronson, Equation (26)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (* b b))) 1))