\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{\sqrt{\sqrt[3]{2} \cdot \sqrt[3]{2}}}} \cdot \left(\frac{\frac{1}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{\sqrt[3]{2}}}} \cdot \left(a1 \cdot a1\right)\right) + \cos th \cdot \frac{{a2}^{2}}{\sqrt{2}}double f(double a1, double a2, double th) {
double r109904 = th;
double r109905 = cos(r109904);
double r109906 = 2.0;
double r109907 = sqrt(r109906);
double r109908 = r109905 / r109907;
double r109909 = a1;
double r109910 = r109909 * r109909;
double r109911 = r109908 * r109910;
double r109912 = a2;
double r109913 = r109912 * r109912;
double r109914 = r109908 * r109913;
double r109915 = r109911 + r109914;
return r109915;
}
double f(double a1, double a2, double th) {
double r109916 = th;
double r109917 = cos(r109916);
double r109918 = 2.0;
double r109919 = cbrt(r109918);
double r109920 = r109919 * r109919;
double r109921 = sqrt(r109920);
double r109922 = sqrt(r109921);
double r109923 = r109917 / r109922;
double r109924 = 1.0;
double r109925 = sqrt(r109918);
double r109926 = sqrt(r109925);
double r109927 = r109924 / r109926;
double r109928 = sqrt(r109919);
double r109929 = sqrt(r109928);
double r109930 = r109927 / r109929;
double r109931 = a1;
double r109932 = r109931 * r109931;
double r109933 = r109930 * r109932;
double r109934 = r109923 * r109933;
double r109935 = a2;
double r109936 = 2.0;
double r109937 = pow(r109935, r109936);
double r109938 = r109937 / r109925;
double r109939 = r109917 * r109938;
double r109940 = r109934 + r109939;
return r109940;
}



Bits error versus a1



Bits error versus a2



Bits error versus th
Results
Initial program 0.5
rmApplied div-inv0.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.5
Applied sqrt-prod0.5
Applied sqrt-prod0.5
Applied div-inv0.5
Applied times-frac0.4
Applied associate-*l*0.4
Final simplification0.4
herbie shell --seed 2020024
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
:precision binary64
(+ (* (/ (cos th) (sqrt 2)) (* a1 a1)) (* (/ (cos th) (sqrt 2)) (* a2 a2))))