\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\left(\sqrt{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot \left(\left(1 - a \cdot 3\right) \cdot b\right) + a \cdot \left(\left(a + 1\right) \cdot a\right)\right)}} \cdot \sqrt{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot \left(\left(1 - a \cdot 3\right) \cdot b\right) + a \cdot \left(\left(a + 1\right) \cdot a\right)\right)}}\right) \cdot \sqrt{4 \cdot \left(\left(1 - a \cdot 3\right) \cdot {b}^{2} + a \cdot \left(\left(a + 1\right) \cdot a\right)\right) + {\left({b}^{2} + a \cdot a\right)}^{2}} - 1double f(double a, double b) {
double r240259 = a;
double r240260 = r240259 * r240259;
double r240261 = b;
double r240262 = r240261 * r240261;
double r240263 = r240260 + r240262;
double r240264 = 2.0;
double r240265 = pow(r240263, r240264);
double r240266 = 4.0;
double r240267 = 1.0;
double r240268 = r240267 + r240259;
double r240269 = r240260 * r240268;
double r240270 = 3.0;
double r240271 = r240270 * r240259;
double r240272 = r240267 - r240271;
double r240273 = r240262 * r240272;
double r240274 = r240269 + r240273;
double r240275 = r240266 * r240274;
double r240276 = r240265 + r240275;
double r240277 = r240276 - r240267;
return r240277;
}
double f(double a, double b) {
double r240278 = a;
double r240279 = r240278 * r240278;
double r240280 = b;
double r240281 = r240280 * r240280;
double r240282 = r240279 + r240281;
double r240283 = 2.0;
double r240284 = pow(r240282, r240283);
double r240285 = 4.0;
double r240286 = 1.0;
double r240287 = 3.0;
double r240288 = r240278 * r240287;
double r240289 = r240286 - r240288;
double r240290 = r240289 * r240280;
double r240291 = r240280 * r240290;
double r240292 = r240278 + r240286;
double r240293 = r240292 * r240278;
double r240294 = r240278 * r240293;
double r240295 = r240291 + r240294;
double r240296 = r240285 * r240295;
double r240297 = r240284 + r240296;
double r240298 = sqrt(r240297);
double r240299 = sqrt(r240298);
double r240300 = r240299 * r240299;
double r240301 = 2.0;
double r240302 = pow(r240280, r240301);
double r240303 = r240289 * r240302;
double r240304 = r240303 + r240294;
double r240305 = r240285 * r240304;
double r240306 = r240302 + r240279;
double r240307 = pow(r240306, r240283);
double r240308 = r240305 + r240307;
double r240309 = sqrt(r240308);
double r240310 = r240300 * r240309;
double r240311 = r240310 - r240286;
return r240311;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied add-sqr-sqrt0.2
Simplified0.2
Simplified0.2
rmApplied add-sqr-sqrt0.2
Applied sqrt-prod0.2
Simplified0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019196
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
(- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (+ 1.0 a)) (* (* b b) (- 1.0 (* 3.0 a)))))) 1.0))