\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\mathsf{fma}\left(4 \cdot b, b, {\left(\mathsf{hypot}\left(b, a\right)\right)}^{\left(2 + 2\right)}\right) - 1double f(double a, double b) {
double r227358 = a;
double r227359 = r227358 * r227358;
double r227360 = b;
double r227361 = r227360 * r227360;
double r227362 = r227359 + r227361;
double r227363 = 2.0;
double r227364 = pow(r227362, r227363);
double r227365 = 4.0;
double r227366 = r227365 * r227361;
double r227367 = r227364 + r227366;
double r227368 = 1.0;
double r227369 = r227367 - r227368;
return r227369;
}
double f(double a, double b) {
double r227370 = 4.0;
double r227371 = b;
double r227372 = r227370 * r227371;
double r227373 = a;
double r227374 = hypot(r227371, r227373);
double r227375 = 2.0;
double r227376 = r227375 + r227375;
double r227377 = pow(r227374, r227376);
double r227378 = fma(r227372, r227371, r227377);
double r227379 = 1.0;
double r227380 = r227378 - r227379;
return r227380;
}



Bits error versus a



Bits error versus b
Initial program 0.2
Simplified0.2
rmApplied add-sqr-sqrt0.2
Simplified0.2
Simplified0.2
rmApplied pow10.2
Applied pow10.2
Applied pow-prod-up0.2
Applied pow-pow0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2020047 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (26)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (* b b))) 1))