\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\left(\frac{\frac{a1}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} \cdot a1\right) \cdot \cos th + \frac{\cos th}{\sqrt{\sqrt{\sqrt{2}}}} \cdot \frac{a2 \cdot a2}{\sqrt{\sqrt{2}} \cdot \sqrt{\sqrt{\sqrt{2}}}}double f(double a1, double a2, double th) {
double r2237254 = th;
double r2237255 = cos(r2237254);
double r2237256 = 2.0;
double r2237257 = sqrt(r2237256);
double r2237258 = r2237255 / r2237257;
double r2237259 = a1;
double r2237260 = r2237259 * r2237259;
double r2237261 = r2237258 * r2237260;
double r2237262 = a2;
double r2237263 = r2237262 * r2237262;
double r2237264 = r2237258 * r2237263;
double r2237265 = r2237261 + r2237264;
return r2237265;
}
double f(double a1, double a2, double th) {
double r2237266 = a1;
double r2237267 = 2.0;
double r2237268 = sqrt(r2237267);
double r2237269 = sqrt(r2237268);
double r2237270 = r2237266 / r2237269;
double r2237271 = r2237270 / r2237269;
double r2237272 = r2237271 * r2237266;
double r2237273 = th;
double r2237274 = cos(r2237273);
double r2237275 = r2237272 * r2237274;
double r2237276 = sqrt(r2237269);
double r2237277 = r2237274 / r2237276;
double r2237278 = a2;
double r2237279 = r2237278 * r2237278;
double r2237280 = r2237269 * r2237276;
double r2237281 = r2237279 / r2237280;
double r2237282 = r2237277 * r2237281;
double r2237283 = r2237275 + r2237282;
return r2237283;
}



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