\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\frac{\frac{1}{\sqrt{2}}}{\frac{1}{\cos th}} \cdot \left(a1 \cdot a1\right) + \left(\frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} \cdot a2\right) \cdot a2double f(double a1, double a2, double th) {
double r107571 = th;
double r107572 = cos(r107571);
double r107573 = 2.0;
double r107574 = sqrt(r107573);
double r107575 = r107572 / r107574;
double r107576 = a1;
double r107577 = r107576 * r107576;
double r107578 = r107575 * r107577;
double r107579 = a2;
double r107580 = r107579 * r107579;
double r107581 = r107575 * r107580;
double r107582 = r107578 + r107581;
return r107582;
}
double f(double a1, double a2, double th) {
double r107583 = 1.0;
double r107584 = 2.0;
double r107585 = sqrt(r107584);
double r107586 = r107583 / r107585;
double r107587 = th;
double r107588 = cos(r107587);
double r107589 = r107583 / r107588;
double r107590 = r107586 / r107589;
double r107591 = a1;
double r107592 = r107591 * r107591;
double r107593 = r107590 * r107592;
double r107594 = sqrt(r107585);
double r107595 = r107588 / r107594;
double r107596 = r107595 / r107594;
double r107597 = a2;
double r107598 = r107596 * r107597;
double r107599 = r107598 * r107597;
double r107600 = r107593 + r107599;
return r107600;
}



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 clear-num0.5
rmApplied div-inv0.5
Applied associate-/r*0.5
Final simplification0.5
herbie shell --seed 2020049
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
:precision binary64
(+ (* (/ (cos th) (sqrt 2)) (* a1 a1)) (* (/ (cos th) (sqrt 2)) (* a2 a2))))