\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\left(\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4} + 1\right) \cdot \left(\sqrt{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4}} \cdot \sqrt{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4}} - 1\right)double f(double a, double b) {
double r10622387 = a;
double r10622388 = r10622387 * r10622387;
double r10622389 = b;
double r10622390 = r10622389 * r10622389;
double r10622391 = r10622388 + r10622390;
double r10622392 = 2.0;
double r10622393 = pow(r10622391, r10622392);
double r10622394 = 4.0;
double r10622395 = 1.0;
double r10622396 = r10622395 - r10622387;
double r10622397 = r10622388 * r10622396;
double r10622398 = 3.0;
double r10622399 = r10622398 + r10622387;
double r10622400 = r10622390 * r10622399;
double r10622401 = r10622397 + r10622400;
double r10622402 = r10622394 * r10622401;
double r10622403 = r10622393 + r10622402;
double r10622404 = r10622403 - r10622395;
return r10622404;
}
double f(double a, double b) {
double r10622405 = a;
double r10622406 = r10622405 * r10622405;
double r10622407 = b;
double r10622408 = r10622407 * r10622407;
double r10622409 = r10622406 + r10622408;
double r10622410 = 2.0;
double r10622411 = pow(r10622409, r10622410);
double r10622412 = 3.0;
double r10622413 = r10622405 + r10622412;
double r10622414 = r10622413 * r10622408;
double r10622415 = 1.0;
double r10622416 = r10622415 - r10622405;
double r10622417 = r10622406 * r10622416;
double r10622418 = r10622414 + r10622417;
double r10622419 = 4.0;
double r10622420 = r10622418 * r10622419;
double r10622421 = r10622411 + r10622420;
double r10622422 = sqrt(r10622421);
double r10622423 = r10622422 + r10622415;
double r10622424 = sqrt(r10622422);
double r10622425 = r10622424 * r10622424;
double r10622426 = r10622425 - r10622415;
double r10622427 = r10622423 * r10622426;
return r10622427;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied *-un-lft-identity0.2
Applied add-sqr-sqrt0.2
Applied difference-of-squares0.2
rmApplied add-sqr-sqrt0.2
Applied sqrt-prod0.2
Final simplification0.2
herbie shell --seed 2019163
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))