\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\frac{1}{\sqrt{\sqrt{2}}} \cdot \frac{\frac{a2 \cdot a2 + a1 \cdot a1}{\frac{\sqrt{\sqrt{\sqrt{2}}}}{\cos th}}}{\sqrt{\sqrt{\sqrt{2}}}}double f(double a1, double a2, double th) {
double r3097873 = th;
double r3097874 = cos(r3097873);
double r3097875 = 2.0;
double r3097876 = sqrt(r3097875);
double r3097877 = r3097874 / r3097876;
double r3097878 = a1;
double r3097879 = r3097878 * r3097878;
double r3097880 = r3097877 * r3097879;
double r3097881 = a2;
double r3097882 = r3097881 * r3097881;
double r3097883 = r3097877 * r3097882;
double r3097884 = r3097880 + r3097883;
return r3097884;
}
double f(double a1, double a2, double th) {
double r3097885 = 1.0;
double r3097886 = 2.0;
double r3097887 = sqrt(r3097886);
double r3097888 = sqrt(r3097887);
double r3097889 = r3097885 / r3097888;
double r3097890 = a2;
double r3097891 = r3097890 * r3097890;
double r3097892 = a1;
double r3097893 = r3097892 * r3097892;
double r3097894 = r3097891 + r3097893;
double r3097895 = sqrt(r3097888);
double r3097896 = th;
double r3097897 = cos(r3097896);
double r3097898 = r3097895 / r3097897;
double r3097899 = r3097894 / r3097898;
double r3097900 = r3097899 / r3097895;
double r3097901 = r3097889 * r3097900;
return r3097901;
}



Bits error versus a1



Bits error versus a2



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