\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\left(a2 \cdot a2\right) \cdot \frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} + \left(a1 \cdot a1\right) \cdot \frac{\cos th}{\sqrt{2}}double f(double a1, double a2, double th) {
double r5877906 = th;
double r5877907 = cos(r5877906);
double r5877908 = 2.0;
double r5877909 = sqrt(r5877908);
double r5877910 = r5877907 / r5877909;
double r5877911 = a1;
double r5877912 = r5877911 * r5877911;
double r5877913 = r5877910 * r5877912;
double r5877914 = a2;
double r5877915 = r5877914 * r5877914;
double r5877916 = r5877910 * r5877915;
double r5877917 = r5877913 + r5877916;
return r5877917;
}
double f(double a1, double a2, double th) {
double r5877918 = a2;
double r5877919 = r5877918 * r5877918;
double r5877920 = th;
double r5877921 = cos(r5877920);
double r5877922 = 2.0;
double r5877923 = sqrt(r5877922);
double r5877924 = sqrt(r5877923);
double r5877925 = r5877921 / r5877924;
double r5877926 = r5877925 / r5877924;
double r5877927 = r5877919 * r5877926;
double r5877928 = a1;
double r5877929 = r5877928 * r5877928;
double r5877930 = r5877921 / r5877923;
double r5877931 = r5877929 * r5877930;
double r5877932 = r5877927 + r5877931;
return r5877932;
}



Bits error versus a1



Bits error versus a2



Bits error versus th
Results
Initial program 0.5
rmApplied add-sqr-sqrt0.5
Applied associate-/r*0.5
Final simplification0.5
herbie shell --seed 2019120 +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))))