\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\frac{\left(a1 \cdot a1 + a2 \cdot a2\right) \cdot \frac{\cos th}{\sqrt{\sqrt{\sqrt{2}}}}}{\sqrt{\sqrt{\sqrt{2}}} \cdot \sqrt{\sqrt{2}}}double f(double a1, double a2, double th) {
double r5779853 = th;
double r5779854 = cos(r5779853);
double r5779855 = 2.0;
double r5779856 = sqrt(r5779855);
double r5779857 = r5779854 / r5779856;
double r5779858 = a1;
double r5779859 = r5779858 * r5779858;
double r5779860 = r5779857 * r5779859;
double r5779861 = a2;
double r5779862 = r5779861 * r5779861;
double r5779863 = r5779857 * r5779862;
double r5779864 = r5779860 + r5779863;
return r5779864;
}
double f(double a1, double a2, double th) {
double r5779865 = a1;
double r5779866 = r5779865 * r5779865;
double r5779867 = a2;
double r5779868 = r5779867 * r5779867;
double r5779869 = r5779866 + r5779868;
double r5779870 = th;
double r5779871 = cos(r5779870);
double r5779872 = 2.0;
double r5779873 = sqrt(r5779872);
double r5779874 = sqrt(r5779873);
double r5779875 = sqrt(r5779874);
double r5779876 = r5779871 / r5779875;
double r5779877 = r5779869 * r5779876;
double r5779878 = r5779875 * r5779874;
double r5779879 = r5779877 / r5779878;
return r5779879;
}



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.5
Applied associate-/r*0.5
rmApplied add-sqr-sqrt0.5
Applied sqrt-prod0.5
Applied sqrt-prod0.5
Applied add-sqr-sqrt0.5
Applied sqrt-prod0.5
Applied sqrt-prod0.5
Applied *-un-lft-identity0.5
Applied times-frac0.5
Applied times-frac0.6
Applied associate-*l*0.6
Simplified0.4
rmApplied associate-*l/0.4
Applied frac-times0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019173
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
(+ (* (/ (cos th) (sqrt 2.0)) (* a1 a1)) (* (/ (cos th) (sqrt 2.0)) (* a2 a2))))