\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\left({\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1double f(double a, double b) {
double r276883 = a;
double r276884 = r276883 * r276883;
double r276885 = b;
double r276886 = r276885 * r276885;
double r276887 = r276884 + r276886;
double r276888 = 2.0;
double r276889 = pow(r276887, r276888);
double r276890 = 4.0;
double r276891 = r276890 * r276886;
double r276892 = r276889 + r276891;
double r276893 = 1.0;
double r276894 = r276892 - r276893;
return r276894;
}
double f(double a, double b) {
double r276895 = a;
double r276896 = b;
double r276897 = r276896 * r276896;
double r276898 = fma(r276895, r276895, r276897);
double r276899 = 2.0;
double r276900 = pow(r276898, r276899);
double r276901 = 4.0;
double r276902 = r276901 * r276897;
double r276903 = r276900 + r276902;
double r276904 = 1.0;
double r276905 = r276903 - r276904;
return r276905;
}



Bits error versus a



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