\frac{\cos th}{\sqrt{2.0}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2.0}} \cdot \left(a2 \cdot a2\right)\frac{a1}{\left(\sqrt{\sqrt{2.0}} \cdot \sqrt{\sqrt{\sqrt{2.0}}}\right) \cdot \frac{\sqrt{\sqrt{\sqrt{2.0}}}}{a1}} \cdot \cos th + \frac{\frac{\cos th}{\sqrt{\sqrt{2.0}}}}{\sqrt{\sqrt{2.0}}} \cdot \left(a2 \cdot a2\right)double f(double a1, double a2, double th) {
double r2918948 = th;
double r2918949 = cos(r2918948);
double r2918950 = 2.0;
double r2918951 = sqrt(r2918950);
double r2918952 = r2918949 / r2918951;
double r2918953 = a1;
double r2918954 = r2918953 * r2918953;
double r2918955 = r2918952 * r2918954;
double r2918956 = a2;
double r2918957 = r2918956 * r2918956;
double r2918958 = r2918952 * r2918957;
double r2918959 = r2918955 + r2918958;
return r2918959;
}
double f(double a1, double a2, double th) {
double r2918960 = a1;
double r2918961 = 2.0;
double r2918962 = sqrt(r2918961);
double r2918963 = sqrt(r2918962);
double r2918964 = sqrt(r2918963);
double r2918965 = r2918963 * r2918964;
double r2918966 = r2918964 / r2918960;
double r2918967 = r2918965 * r2918966;
double r2918968 = r2918960 / r2918967;
double r2918969 = th;
double r2918970 = cos(r2918969);
double r2918971 = r2918968 * r2918970;
double r2918972 = r2918970 / r2918963;
double r2918973 = r2918972 / r2918963;
double r2918974 = a2;
double r2918975 = r2918974 * r2918974;
double r2918976 = r2918973 * r2918975;
double r2918977 = r2918971 + r2918976;
return r2918977;
}



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