\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\frac{\cos th}{\sqrt{\sqrt{\sqrt[3]{2} \cdot \sqrt[3]{2}}}}}{\frac{\sqrt{\sqrt{2}}}{\frac{a2}{\sqrt{\sqrt{\sqrt[3]{2}}}}}} \cdot a2double f(double a1, double a2, double th) {
double r96909 = th;
double r96910 = cos(r96909);
double r96911 = 2.0;
double r96912 = sqrt(r96911);
double r96913 = r96910 / r96912;
double r96914 = a1;
double r96915 = r96914 * r96914;
double r96916 = r96913 * r96915;
double r96917 = a2;
double r96918 = r96917 * r96917;
double r96919 = r96913 * r96918;
double r96920 = r96916 + r96919;
return r96920;
}
double f(double a1, double a2, double th) {
double r96921 = th;
double r96922 = cos(r96921);
double r96923 = 2.0;
double r96924 = sqrt(r96923);
double r96925 = r96922 / r96924;
double r96926 = a1;
double r96927 = r96926 * r96926;
double r96928 = r96925 * r96927;
double r96929 = cbrt(r96923);
double r96930 = r96929 * r96929;
double r96931 = sqrt(r96930);
double r96932 = sqrt(r96931);
double r96933 = r96922 / r96932;
double r96934 = sqrt(r96924);
double r96935 = a2;
double r96936 = sqrt(r96929);
double r96937 = sqrt(r96936);
double r96938 = r96935 / r96937;
double r96939 = r96934 / r96938;
double r96940 = r96933 / r96939;
double r96941 = r96940 * r96935;
double r96942 = r96928 + r96941;
return r96942;
}



Bits error versus a1



Bits error versus a2



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