\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)a2 \cdot \left(a2 \cdot \frac{\cos th}{\sqrt{2}}\right) + \left(a1 \cdot a1\right) \cdot \frac{\frac{1}{\sqrt{\sqrt{\sqrt{2}}}}}{\frac{\sqrt{\sqrt{\sqrt{2}}}}{\frac{\cos th}{\sqrt{\sqrt{2}}}}}double f(double a1, double a2, double th) {
double r1553879 = th;
double r1553880 = cos(r1553879);
double r1553881 = 2.0;
double r1553882 = sqrt(r1553881);
double r1553883 = r1553880 / r1553882;
double r1553884 = a1;
double r1553885 = r1553884 * r1553884;
double r1553886 = r1553883 * r1553885;
double r1553887 = a2;
double r1553888 = r1553887 * r1553887;
double r1553889 = r1553883 * r1553888;
double r1553890 = r1553886 + r1553889;
return r1553890;
}
double f(double a1, double a2, double th) {
double r1553891 = a2;
double r1553892 = th;
double r1553893 = cos(r1553892);
double r1553894 = 2.0;
double r1553895 = sqrt(r1553894);
double r1553896 = r1553893 / r1553895;
double r1553897 = r1553891 * r1553896;
double r1553898 = r1553891 * r1553897;
double r1553899 = a1;
double r1553900 = r1553899 * r1553899;
double r1553901 = 1.0;
double r1553902 = sqrt(r1553895);
double r1553903 = sqrt(r1553902);
double r1553904 = r1553901 / r1553903;
double r1553905 = r1553893 / r1553902;
double r1553906 = r1553903 / r1553905;
double r1553907 = r1553904 / r1553906;
double r1553908 = r1553900 * r1553907;
double r1553909 = r1553898 + r1553908;
return r1553909;
}



Bits error versus a1



Bits error versus a2



Bits error versus th
Results
Initial program 0.5
rmApplied add-sqr-sqrt0.5
Applied sqrt-prod0.5
Applied associate-/r*0.5
rmApplied *-un-lft-identity0.5
Applied associate-/l*0.5
rmApplied associate-*r*0.5
rmApplied *-un-lft-identity0.5
Applied add-sqr-sqrt0.5
Applied sqrt-prod0.5
Applied times-frac0.5
Applied associate-/r*0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019151 +o rules:numerics
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
(+ (* (/ (cos th) (sqrt 2)) (* a1 a1)) (* (/ (cos th) (sqrt 2)) (* a2 a2))))