\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)a2 \cdot \left(a2 \cdot \frac{\cos th}{\sqrt{2}}\right) + \frac{a1}{\frac{\sqrt{2}}{a1}} \cdot \cos thdouble f(double a1, double a2, double th) {
double r1398737 = th;
double r1398738 = cos(r1398737);
double r1398739 = 2.0;
double r1398740 = sqrt(r1398739);
double r1398741 = r1398738 / r1398740;
double r1398742 = a1;
double r1398743 = r1398742 * r1398742;
double r1398744 = r1398741 * r1398743;
double r1398745 = a2;
double r1398746 = r1398745 * r1398745;
double r1398747 = r1398741 * r1398746;
double r1398748 = r1398744 + r1398747;
return r1398748;
}
double f(double a1, double a2, double th) {
double r1398749 = a2;
double r1398750 = th;
double r1398751 = cos(r1398750);
double r1398752 = 2.0;
double r1398753 = sqrt(r1398752);
double r1398754 = r1398751 / r1398753;
double r1398755 = r1398749 * r1398754;
double r1398756 = r1398749 * r1398755;
double r1398757 = a1;
double r1398758 = r1398753 / r1398757;
double r1398759 = r1398757 / r1398758;
double r1398760 = r1398759 * r1398751;
double r1398761 = r1398756 + r1398760;
return r1398761;
}



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 associate-*r*0.5
Final simplification0.5
herbie shell --seed 2019135 +o rules:numerics
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
(+ (* (/ (cos th) (sqrt 2)) (* a1 a1)) (* (/ (cos th) (sqrt 2)) (* a2 a2))))