\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\left(\left(\frac{1}{\sqrt{\sqrt{\sqrt{2}}}} \cdot \frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{\sqrt{2}}}}\right) \cdot a1\right) \cdot a1 + \frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} \cdot \left(a2 \cdot a2\right)double f(double a1, double a2, double th) {
double r97347 = th;
double r97348 = cos(r97347);
double r97349 = 2.0;
double r97350 = sqrt(r97349);
double r97351 = r97348 / r97350;
double r97352 = a1;
double r97353 = r97352 * r97352;
double r97354 = r97351 * r97353;
double r97355 = a2;
double r97356 = r97355 * r97355;
double r97357 = r97351 * r97356;
double r97358 = r97354 + r97357;
return r97358;
}
double f(double a1, double a2, double th) {
double r97359 = 1.0;
double r97360 = 2.0;
double r97361 = sqrt(r97360);
double r97362 = sqrt(r97361);
double r97363 = sqrt(r97362);
double r97364 = r97359 / r97363;
double r97365 = th;
double r97366 = cos(r97365);
double r97367 = r97366 / r97362;
double r97368 = r97367 / r97363;
double r97369 = r97364 * r97368;
double r97370 = a1;
double r97371 = r97369 * r97370;
double r97372 = r97371 * r97370;
double r97373 = r97367 / r97362;
double r97374 = a2;
double r97375 = r97374 * r97374;
double r97376 = r97373 * r97375;
double r97377 = r97372 + r97376;
return r97377;
}



Bits error versus a1



Bits error versus a2



Bits error versus th
Results
Initial program 0.5
rmApplied associate-*r*0.5
rmApplied add-sqr-sqrt0.5
Applied sqrt-prod0.5
Applied associate-/r*0.5
rmApplied *-un-lft-identity0.5
Applied sqrt-prod0.5
Applied sqrt-prod0.5
Applied add-sqr-sqrt0.5
Applied sqrt-prod0.5
Applied sqrt-prod0.5
Applied *-un-lft-identity0.5
Applied times-frac0.5
Applied times-frac0.5
Simplified0.5
Simplified0.5
rmApplied add-sqr-sqrt0.5
Applied sqrt-prod0.5
Applied associate-/r*0.5
Final simplification0.5
herbie shell --seed 2020062
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
:precision binary64
(+ (* (/ (cos th) (sqrt 2)) (* a1 a1)) (* (/ (cos th) (sqrt 2)) (* a2 a2))))