\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\frac{\frac{1}{\sqrt{\sqrt{\sqrt{2}}}}}{\frac{\sqrt{\sqrt{\sqrt{2}}}}{\frac{\cos th}{\sqrt{\sqrt{2}}}}} \cdot \left(a2 \cdot a2\right) + a1 \cdot \left(a1 \cdot \frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}}\right)double f(double a1, double a2, double th) {
double r2487818 = th;
double r2487819 = cos(r2487818);
double r2487820 = 2.0;
double r2487821 = sqrt(r2487820);
double r2487822 = r2487819 / r2487821;
double r2487823 = a1;
double r2487824 = r2487823 * r2487823;
double r2487825 = r2487822 * r2487824;
double r2487826 = a2;
double r2487827 = r2487826 * r2487826;
double r2487828 = r2487822 * r2487827;
double r2487829 = r2487825 + r2487828;
return r2487829;
}
double f(double a1, double a2, double th) {
double r2487830 = 1.0;
double r2487831 = 2.0;
double r2487832 = sqrt(r2487831);
double r2487833 = sqrt(r2487832);
double r2487834 = sqrt(r2487833);
double r2487835 = r2487830 / r2487834;
double r2487836 = th;
double r2487837 = cos(r2487836);
double r2487838 = r2487837 / r2487833;
double r2487839 = r2487834 / r2487838;
double r2487840 = r2487835 / r2487839;
double r2487841 = a2;
double r2487842 = r2487841 * r2487841;
double r2487843 = r2487840 * r2487842;
double r2487844 = a1;
double r2487845 = r2487838 / r2487833;
double r2487846 = r2487844 * r2487845;
double r2487847 = r2487844 * r2487846;
double r2487848 = r2487843 + r2487847;
return r2487848;
}



Bits error versus a1



Bits error versus a2



Bits error versus th
Results
Initial program 0.5
rmApplied associate-*r*0.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 associate-/r*0.5
rmApplied add-sqr-sqrt0.5
Applied sqrt-prod0.5
Applied sqrt-prod0.5
Applied *-un-lft-identity0.5
Applied times-frac0.5
Applied associate-/l*0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019146
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
(+ (* (/ (cos th) (sqrt 2)) (* a1 a1)) (* (/ (cos th) (sqrt 2)) (* a2 a2))))