\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\left(\frac{\cos th}{\sqrt{2}} \cdot \sqrt{a1 \cdot a1 + a2 \cdot a2}\right) \cdot \sqrt{a1 \cdot a1 + a2 \cdot a2}double f(double a1, double a2, double th) {
double r106651 = th;
double r106652 = cos(r106651);
double r106653 = 2.0;
double r106654 = sqrt(r106653);
double r106655 = r106652 / r106654;
double r106656 = a1;
double r106657 = r106656 * r106656;
double r106658 = r106655 * r106657;
double r106659 = a2;
double r106660 = r106659 * r106659;
double r106661 = r106655 * r106660;
double r106662 = r106658 + r106661;
return r106662;
}
double f(double a1, double a2, double th) {
double r106663 = th;
double r106664 = cos(r106663);
double r106665 = 2.0;
double r106666 = sqrt(r106665);
double r106667 = r106664 / r106666;
double r106668 = a1;
double r106669 = r106668 * r106668;
double r106670 = a2;
double r106671 = r106670 * r106670;
double r106672 = r106669 + r106671;
double r106673 = sqrt(r106672);
double r106674 = r106667 * r106673;
double r106675 = r106674 * r106673;
return r106675;
}



Bits error versus a1



Bits error versus a2



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