\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\cos th \cdot \frac{a2 \cdot a2}{\sqrt{2}} + \frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} \cdot \left(a1 \cdot a1\right)double f(double a1, double a2, double th) {
double r942817 = th;
double r942818 = cos(r942817);
double r942819 = 2.0;
double r942820 = sqrt(r942819);
double r942821 = r942818 / r942820;
double r942822 = a1;
double r942823 = r942822 * r942822;
double r942824 = r942821 * r942823;
double r942825 = a2;
double r942826 = r942825 * r942825;
double r942827 = r942821 * r942826;
double r942828 = r942824 + r942827;
return r942828;
}
double f(double a1, double a2, double th) {
double r942829 = th;
double r942830 = cos(r942829);
double r942831 = a2;
double r942832 = r942831 * r942831;
double r942833 = 2.0;
double r942834 = sqrt(r942833);
double r942835 = r942832 / r942834;
double r942836 = r942830 * r942835;
double r942837 = sqrt(r942834);
double r942838 = r942830 / r942837;
double r942839 = r942838 / r942837;
double r942840 = a1;
double r942841 = r942840 * r942840;
double r942842 = r942839 * r942841;
double r942843 = r942836 + r942842;
return r942843;
}



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
Final simplification0.5
herbie shell --seed 2019154
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
(+ (* (/ (cos th) (sqrt 2)) (* a1 a1)) (* (/ (cos th) (sqrt 2)) (* a2 a2))))