\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\sqrt{\mathsf{fma}\left({\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{\left(\frac{2}{2}\right)}, {\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{\left(\frac{2}{2}\right)}, 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)} \cdot \sqrt{\mathsf{fma}\left({\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{\left(\frac{2}{2}\right)}, {\left(\mathsf{fma}\left(a, a, b \cdot b\right)\right)}^{\left(\frac{2}{2}\right)}, 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 r273843 = a;
double r273844 = r273843 * r273843;
double r273845 = b;
double r273846 = r273845 * r273845;
double r273847 = r273844 + r273846;
double r273848 = 2.0;
double r273849 = pow(r273847, r273848);
double r273850 = 4.0;
double r273851 = 1.0;
double r273852 = r273851 - r273843;
double r273853 = r273844 * r273852;
double r273854 = 3.0;
double r273855 = r273854 + r273843;
double r273856 = r273846 * r273855;
double r273857 = r273853 + r273856;
double r273858 = r273850 * r273857;
double r273859 = r273849 + r273858;
double r273860 = r273859 - r273851;
return r273860;
}
double f(double a, double b) {
double r273861 = a;
double r273862 = b;
double r273863 = r273862 * r273862;
double r273864 = fma(r273861, r273861, r273863);
double r273865 = 2.0;
double r273866 = 2.0;
double r273867 = r273865 / r273866;
double r273868 = pow(r273864, r273867);
double r273869 = 4.0;
double r273870 = r273861 * r273861;
double r273871 = 1.0;
double r273872 = r273871 - r273861;
double r273873 = r273870 * r273872;
double r273874 = 3.0;
double r273875 = r273874 + r273861;
double r273876 = r273863 * r273875;
double r273877 = r273873 + r273876;
double r273878 = r273869 * r273877;
double r273879 = fma(r273868, r273868, r273878);
double r273880 = sqrt(r273879);
double r273881 = r273880 * r273880;
double r273882 = r273881 - r273871;
return r273882;
}



Bits error versus a



Bits error versus b
Initial program 0.2
rmApplied *-un-lft-identity0.2
Applied pow-unpow0.2
Simplified0.2
rmApplied sqr-pow0.2
Applied fma-def0.2
rmApplied add-sqr-sqrt0.2
Final simplification0.2
herbie shell --seed 2020060 +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))