\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\mathsf{fma}\left(b, \left(b \cdot 4\right), \left(\mathsf{fma}\left(\left(\mathsf{hypot}\left(a, b\right) \cdot \mathsf{hypot}\left(a, b\right)\right), \left(\mathsf{hypot}\left(a, b\right) \cdot \mathsf{hypot}\left(a, b\right)\right), -1\right)\right)\right)double f(double a, double b) {
double r50962703 = a;
double r50962704 = r50962703 * r50962703;
double r50962705 = b;
double r50962706 = r50962705 * r50962705;
double r50962707 = r50962704 + r50962706;
double r50962708 = 2.0;
double r50962709 = pow(r50962707, r50962708);
double r50962710 = 4.0;
double r50962711 = r50962710 * r50962706;
double r50962712 = r50962709 + r50962711;
double r50962713 = 1.0;
double r50962714 = r50962712 - r50962713;
return r50962714;
}
double f(double a, double b) {
double r50962715 = b;
double r50962716 = 4.0;
double r50962717 = r50962715 * r50962716;
double r50962718 = a;
double r50962719 = hypot(r50962718, r50962715);
double r50962720 = r50962719 * r50962719;
double r50962721 = -1.0;
double r50962722 = fma(r50962720, r50962720, r50962721);
double r50962723 = fma(r50962715, r50962717, r50962722);
return r50962723;
}



Bits error versus a



Bits error versus b
Initial program 0.2
rmApplied *-un-lft-identity0.2
Applied add-sqr-sqrt0.2
Applied prod-diff0.2
Simplified0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019125 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (26)"
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (* b b))) 1))