\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} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4\right) - 1double f(double a, double b) {
double r205928 = a;
double r205929 = r205928 * r205928;
double r205930 = b;
double r205931 = r205930 * r205930;
double r205932 = r205929 + r205931;
double r205933 = 2.0;
double r205934 = pow(r205932, r205933);
double r205935 = 4.0;
double r205936 = 1.0;
double r205937 = r205936 + r205928;
double r205938 = r205929 * r205937;
double r205939 = 3.0;
double r205940 = r205939 * r205928;
double r205941 = r205936 - r205940;
double r205942 = r205931 * r205941;
double r205943 = r205938 + r205942;
double r205944 = r205935 * r205943;
double r205945 = r205934 + r205944;
double r205946 = r205945 - r205936;
return r205946;
}
double f(double a, double b) {
double r205947 = a;
double r205948 = r205947 * r205947;
double r205949 = b;
double r205950 = r205949 * r205949;
double r205951 = r205948 + r205950;
double r205952 = 2.0;
double r205953 = pow(r205951, r205952);
double r205954 = 1.0;
double r205955 = r205947 + r205954;
double r205956 = r205948 * r205955;
double r205957 = 3.0;
double r205958 = r205957 * r205947;
double r205959 = r205954 - r205958;
double r205960 = r205950 * r205959;
double r205961 = r205956 + r205960;
double r205962 = 4.0;
double r205963 = r205961 * r205962;
double r205964 = r205953 + r205963;
double r205965 = r205964 - r205954;
return r205965;
}



Bits error versus a



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