\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\left(a2 \cdot a2\right) \cdot \frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\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 r2374816 = th;
double r2374817 = cos(r2374816);
double r2374818 = 2.0;
double r2374819 = sqrt(r2374818);
double r2374820 = r2374817 / r2374819;
double r2374821 = a1;
double r2374822 = r2374821 * r2374821;
double r2374823 = r2374820 * r2374822;
double r2374824 = a2;
double r2374825 = r2374824 * r2374824;
double r2374826 = r2374820 * r2374825;
double r2374827 = r2374823 + r2374826;
return r2374827;
}
double f(double a1, double a2, double th) {
double r2374828 = a2;
double r2374829 = r2374828 * r2374828;
double r2374830 = th;
double r2374831 = cos(r2374830);
double r2374832 = 2.0;
double r2374833 = sqrt(r2374832);
double r2374834 = sqrt(r2374833);
double r2374835 = r2374831 / r2374834;
double r2374836 = r2374835 / r2374834;
double r2374837 = r2374829 * r2374836;
double r2374838 = a1;
double r2374839 = r2374838 * r2374838;
double r2374840 = r2374836 * r2374839;
double r2374841 = r2374837 + r2374840;
return r2374841;
}



Bits error versus a1



Bits error versus a2



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