\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 r2911956 = th;
double r2911957 = cos(r2911956);
double r2911958 = 2.0;
double r2911959 = sqrt(r2911958);
double r2911960 = r2911957 / r2911959;
double r2911961 = a1;
double r2911962 = r2911961 * r2911961;
double r2911963 = r2911960 * r2911962;
double r2911964 = a2;
double r2911965 = r2911964 * r2911964;
double r2911966 = r2911960 * r2911965;
double r2911967 = r2911963 + r2911966;
return r2911967;
}
double f(double a1, double a2, double th) {
double r2911968 = a2;
double r2911969 = r2911968 * r2911968;
double r2911970 = th;
double r2911971 = cos(r2911970);
double r2911972 = 2.0;
double r2911973 = sqrt(r2911972);
double r2911974 = sqrt(r2911973);
double r2911975 = r2911971 / r2911974;
double r2911976 = r2911975 / r2911974;
double r2911977 = r2911969 * r2911976;
double r2911978 = a1;
double r2911979 = r2911978 * r2911978;
double r2911980 = r2911976 * r2911979;
double r2911981 = r2911977 + r2911980;
return r2911981;
}



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))))