\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(3 + 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(3 + a\right)\right)} \cdot \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(3 + a\right)\right)} - 1double f(double a, double b) {
double r248036 = a;
double r248037 = r248036 * r248036;
double r248038 = b;
double r248039 = r248038 * r248038;
double r248040 = r248037 + r248039;
double r248041 = 2.0;
double r248042 = pow(r248040, r248041);
double r248043 = 4.0;
double r248044 = 1.0;
double r248045 = r248044 - r248036;
double r248046 = r248037 * r248045;
double r248047 = 3.0;
double r248048 = r248047 + r248036;
double r248049 = r248039 * r248048;
double r248050 = r248046 + r248049;
double r248051 = r248043 * r248050;
double r248052 = r248042 + r248051;
double r248053 = r248052 - r248044;
return r248053;
}
double f(double a, double b) {
double r248054 = a;
double r248055 = r248054 * r248054;
double r248056 = b;
double r248057 = r248056 * r248056;
double r248058 = r248055 + r248057;
double r248059 = 2.0;
double r248060 = pow(r248058, r248059);
double r248061 = 4.0;
double r248062 = 1.0;
double r248063 = r248062 - r248054;
double r248064 = r248055 * r248063;
double r248065 = 3.0;
double r248066 = r248065 + r248054;
double r248067 = r248057 * r248066;
double r248068 = r248064 + r248067;
double r248069 = r248061 * r248068;
double r248070 = r248060 + r248069;
double r248071 = sqrt(r248070);
double r248072 = r248071 * r248071;
double r248073 = r248072 - r248062;
return r248073;
}



Bits error versus a



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