\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 \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)} - 1double f(double a, double b) {
double r160042 = a;
double r160043 = r160042 * r160042;
double r160044 = b;
double r160045 = r160044 * r160044;
double r160046 = r160043 + r160045;
double r160047 = 2.0;
double r160048 = pow(r160046, r160047);
double r160049 = 4.0;
double r160050 = 1.0;
double r160051 = r160050 + r160042;
double r160052 = r160043 * r160051;
double r160053 = 3.0;
double r160054 = r160053 * r160042;
double r160055 = r160050 - r160054;
double r160056 = r160045 * r160055;
double r160057 = r160052 + r160056;
double r160058 = r160049 * r160057;
double r160059 = r160048 + r160058;
double r160060 = r160059 - r160050;
return r160060;
}
double f(double a, double b) {
double r160061 = a;
double r160062 = r160061 * r160061;
double r160063 = b;
double r160064 = r160063 * r160063;
double r160065 = r160062 + r160064;
double r160066 = 2.0;
double r160067 = pow(r160065, r160066);
double r160068 = 4.0;
double r160069 = 1.0;
double r160070 = r160069 + r160061;
double r160071 = r160062 * r160070;
double r160072 = 3.0;
double r160073 = r160072 * r160061;
double r160074 = r160069 - r160073;
double r160075 = r160064 * r160074;
double r160076 = r160071 + r160075;
double r160077 = r160068 * r160076;
double r160078 = r160067 + r160077;
double r160079 = sqrt(r160078);
double r160080 = r160079 * r160079;
double r160081 = r160080 - r160069;
return r160081;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied add-sqr-sqrt0.2
Final simplification0.2
herbie shell --seed 2020033
(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))