\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 r153107 = a;
double r153108 = r153107 * r153107;
double r153109 = b;
double r153110 = r153109 * r153109;
double r153111 = r153108 + r153110;
double r153112 = 2.0;
double r153113 = pow(r153111, r153112);
double r153114 = 4.0;
double r153115 = 1.0;
double r153116 = r153115 + r153107;
double r153117 = r153108 * r153116;
double r153118 = 3.0;
double r153119 = r153118 * r153107;
double r153120 = r153115 - r153119;
double r153121 = r153110 * r153120;
double r153122 = r153117 + r153121;
double r153123 = r153114 * r153122;
double r153124 = r153113 + r153123;
double r153125 = r153124 - r153115;
return r153125;
}
double f(double a, double b) {
double r153126 = a;
double r153127 = r153126 * r153126;
double r153128 = b;
double r153129 = r153128 * r153128;
double r153130 = r153127 + r153129;
double r153131 = 2.0;
double r153132 = pow(r153130, r153131);
double r153133 = 4.0;
double r153134 = 1.0;
double r153135 = r153134 + r153126;
double r153136 = r153127 * r153135;
double r153137 = 3.0;
double r153138 = r153137 * r153126;
double r153139 = r153134 - r153138;
double r153140 = r153129 * r153139;
double r153141 = r153136 + r153140;
double r153142 = r153133 * r153141;
double r153143 = r153132 + r153142;
double r153144 = sqrt(r153143);
double r153145 = r153144 * r153144;
double r153146 = r153145 - r153134;
return r153146;
}



Bits error versus a



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