\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2 + a1 \cdot a1\right)double f(double a1, double a2, double th) {
double r83688 = th;
double r83689 = cos(r83688);
double r83690 = 2.0;
double r83691 = sqrt(r83690);
double r83692 = r83689 / r83691;
double r83693 = a1;
double r83694 = r83693 * r83693;
double r83695 = r83692 * r83694;
double r83696 = a2;
double r83697 = r83696 * r83696;
double r83698 = r83692 * r83697;
double r83699 = r83695 + r83698;
return r83699;
}
double f(double a1, double a2, double th) {
double r83700 = th;
double r83701 = cos(r83700);
double r83702 = 2.0;
double r83703 = sqrt(r83702);
double r83704 = r83701 / r83703;
double r83705 = a2;
double r83706 = r83705 * r83705;
double r83707 = a1;
double r83708 = r83707 * r83707;
double r83709 = r83706 + r83708;
double r83710 = r83704 * r83709;
return r83710;
}



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