\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 r138140 = a;
double r138141 = r138140 * r138140;
double r138142 = b;
double r138143 = r138142 * r138142;
double r138144 = r138141 + r138143;
double r138145 = 2.0;
double r138146 = pow(r138144, r138145);
double r138147 = 4.0;
double r138148 = 1.0;
double r138149 = r138148 + r138140;
double r138150 = r138141 * r138149;
double r138151 = 3.0;
double r138152 = r138151 * r138140;
double r138153 = r138148 - r138152;
double r138154 = r138143 * r138153;
double r138155 = r138150 + r138154;
double r138156 = r138147 * r138155;
double r138157 = r138146 + r138156;
double r138158 = r138157 - r138148;
return r138158;
}
double f(double a, double b) {
double r138159 = a;
double r138160 = r138159 * r138159;
double r138161 = b;
double r138162 = r138161 * r138161;
double r138163 = r138160 + r138162;
double r138164 = 2.0;
double r138165 = pow(r138163, r138164);
double r138166 = 4.0;
double r138167 = 1.0;
double r138168 = r138167 + r138159;
double r138169 = r138160 * r138168;
double r138170 = 3.0;
double r138171 = r138170 * r138159;
double r138172 = r138167 - r138171;
double r138173 = r138162 * r138172;
double r138174 = r138169 + r138173;
double r138175 = r138166 * r138174;
double r138176 = r138165 + r138175;
double r138177 = sqrt(r138176);
double r138178 = sqrt(r138177);
double r138179 = r138178 * r138178;
double r138180 = r138177 * r138179;
double r138181 = r138180 - r138167;
return r138181;
}



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))