\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\mathsf{fma}\left(\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2}}, \sqrt{{\left(\mathsf{hypot}\left(a, b\right)\right)}^{2} \cdot {\left(\mathsf{hypot}\left(a, b\right)\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) - 1double f(double a, double b) {
double r287942 = a;
double r287943 = r287942 * r287942;
double r287944 = b;
double r287945 = r287944 * r287944;
double r287946 = r287943 + r287945;
double r287947 = 2.0;
double r287948 = pow(r287946, r287947);
double r287949 = 4.0;
double r287950 = 1.0;
double r287951 = r287950 - r287942;
double r287952 = r287943 * r287951;
double r287953 = 3.0;
double r287954 = r287953 + r287942;
double r287955 = r287945 * r287954;
double r287956 = r287952 + r287955;
double r287957 = r287949 * r287956;
double r287958 = r287948 + r287957;
double r287959 = r287958 - r287950;
return r287959;
}
double f(double a, double b) {
double r287960 = a;
double r287961 = r287960 * r287960;
double r287962 = b;
double r287963 = r287962 * r287962;
double r287964 = r287961 + r287963;
double r287965 = 2.0;
double r287966 = pow(r287964, r287965);
double r287967 = sqrt(r287966);
double r287968 = hypot(r287960, r287962);
double r287969 = pow(r287968, r287965);
double r287970 = r287969 * r287969;
double r287971 = sqrt(r287970);
double r287972 = 4.0;
double r287973 = 1.0;
double r287974 = r287973 - r287960;
double r287975 = r287961 * r287974;
double r287976 = 3.0;
double r287977 = r287976 + r287960;
double r287978 = r287963 * r287977;
double r287979 = r287975 + r287978;
double r287980 = r287972 * r287979;
double r287981 = fma(r287967, r287971, r287980);
double r287982 = r287981 - r287973;
return r287982;
}



Bits error versus a



Bits error versus b
Initial program 0.2
rmApplied add-sqr-sqrt0.2
Applied fma-def0.2
rmApplied add-sqr-sqrt0.2
Applied unpow-prod-down0.2
Simplified0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019353 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (24)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (- 1 a)) (* (* b b) (+ 3 a))))) 1))