\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\sqrt{{\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)} \cdot \left(\sqrt{\sqrt{{\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)}} \cdot \sqrt{\sqrt{{\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) - 1double f(double a, double b) {
double r287929 = a;
double r287930 = r287929 * r287929;
double r287931 = b;
double r287932 = r287931 * r287931;
double r287933 = r287930 + r287932;
double r287934 = 2.0;
double r287935 = pow(r287933, r287934);
double r287936 = 4.0;
double r287937 = 1.0;
double r287938 = r287937 + r287929;
double r287939 = r287930 * r287938;
double r287940 = 3.0;
double r287941 = r287940 * r287929;
double r287942 = r287937 - r287941;
double r287943 = r287932 * r287942;
double r287944 = r287939 + r287943;
double r287945 = r287936 * r287944;
double r287946 = r287935 + r287945;
double r287947 = r287946 - r287937;
return r287947;
}
double f(double a, double b) {
double r287948 = a;
double r287949 = r287948 * r287948;
double r287950 = b;
double r287951 = r287950 * r287950;
double r287952 = r287949 + r287951;
double r287953 = 2.0;
double r287954 = pow(r287952, r287953);
double r287955 = 4.0;
double r287956 = 1.0;
double r287957 = r287956 + r287948;
double r287958 = r287949 * r287957;
double r287959 = 3.0;
double r287960 = r287959 * r287948;
double r287961 = r287956 - r287960;
double r287962 = r287951 * r287961;
double r287963 = r287958 + r287962;
double r287964 = r287955 * r287963;
double r287965 = r287954 + r287964;
double r287966 = sqrt(r287965);
double r287967 = sqrt(r287966);
double r287968 = r287967 * r287967;
double r287969 = r287966 * r287968;
double r287970 = r287969 - r287956;
return r287970;
}



Bits error versus a



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