\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(1 - 3 \cdot a\right)\right)\right) - 1\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(\left(a \cdot a\right) \cdot 1 + {a}^{3}\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1double f(double a, double b) {
double r102924 = a;
double r102925 = r102924 * r102924;
double r102926 = b;
double r102927 = r102926 * r102926;
double r102928 = r102925 + r102927;
double r102929 = 2.0;
double r102930 = pow(r102928, r102929);
double r102931 = 4.0;
double r102932 = 1.0;
double r102933 = r102932 + r102924;
double r102934 = r102925 * r102933;
double r102935 = 3.0;
double r102936 = r102935 * r102924;
double r102937 = r102932 - r102936;
double r102938 = r102927 * r102937;
double r102939 = r102934 + r102938;
double r102940 = r102931 * r102939;
double r102941 = r102930 + r102940;
double r102942 = r102941 - r102932;
return r102942;
}
double f(double a, double b) {
double r102943 = a;
double r102944 = r102943 * r102943;
double r102945 = b;
double r102946 = r102945 * r102945;
double r102947 = r102944 + r102946;
double r102948 = 2.0;
double r102949 = pow(r102947, r102948);
double r102950 = 4.0;
double r102951 = 1.0;
double r102952 = r102944 * r102951;
double r102953 = 3.0;
double r102954 = pow(r102943, r102953);
double r102955 = r102952 + r102954;
double r102956 = 3.0;
double r102957 = r102956 * r102943;
double r102958 = r102951 - r102957;
double r102959 = r102946 * r102958;
double r102960 = r102955 + r102959;
double r102961 = r102950 * r102960;
double r102962 = r102949 + r102961;
double r102963 = r102962 - r102951;
return r102963;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied distribute-lft-in0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019195
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
(- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (+ 1.0 a)) (* (* b b) (- 1.0 (* 3.0 a)))))) 1.0))