\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)}^{\left(\frac{2}{2}\right)} \cdot {\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{\left(\frac{2}{2}\right)} + 4 \cdot \left(b \cdot b\right)\right) - 1double f(double a, double b) {
double r252794 = a;
double r252795 = r252794 * r252794;
double r252796 = b;
double r252797 = r252796 * r252796;
double r252798 = r252795 + r252797;
double r252799 = 2.0;
double r252800 = pow(r252798, r252799);
double r252801 = 4.0;
double r252802 = r252801 * r252797;
double r252803 = r252800 + r252802;
double r252804 = 1.0;
double r252805 = r252803 - r252804;
return r252805;
}
double f(double a, double b) {
double r252806 = a;
double r252807 = b;
double r252808 = r252807 * r252807;
double r252809 = fma(r252806, r252806, r252808);
double r252810 = 2.0;
double r252811 = 2.0;
double r252812 = r252810 / r252811;
double r252813 = pow(r252809, r252812);
double r252814 = r252813 * r252813;
double r252815 = 4.0;
double r252816 = r252815 * r252808;
double r252817 = r252814 + r252816;
double r252818 = 1.0;
double r252819 = r252817 - r252818;
return r252819;
}



Bits error versus a



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