\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(a \cdot a + b \cdot b\right)}^{2} - 1\right)double f(double a, double b) {
double r273842 = a;
double r273843 = r273842 * r273842;
double r273844 = b;
double r273845 = r273844 * r273844;
double r273846 = r273843 + r273845;
double r273847 = 2.0;
double r273848 = pow(r273846, r273847);
double r273849 = 4.0;
double r273850 = r273849 * r273845;
double r273851 = r273848 + r273850;
double r273852 = 1.0;
double r273853 = r273851 - r273852;
return r273853;
}
double f(double a, double b) {
double r273854 = 4.0;
double r273855 = b;
double r273856 = r273854 * r273855;
double r273857 = a;
double r273858 = r273857 * r273857;
double r273859 = r273855 * r273855;
double r273860 = r273858 + r273859;
double r273861 = 2.0;
double r273862 = pow(r273860, r273861);
double r273863 = 1.0;
double r273864 = r273862 - r273863;
double r273865 = fma(r273856, r273855, r273864);
return r273865;
}



Bits error versus a



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