\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\frac{\sqrt{a2 \cdot a2 + a1 \cdot a1}}{\frac{\frac{\sqrt{2}}{\cos th}}{\sqrt{{a1}^{2} + a2 \cdot a2}}}double f(double a1, double a2, double th) {
double r118892 = th;
double r118893 = cos(r118892);
double r118894 = 2.0;
double r118895 = sqrt(r118894);
double r118896 = r118893 / r118895;
double r118897 = a1;
double r118898 = r118897 * r118897;
double r118899 = r118896 * r118898;
double r118900 = a2;
double r118901 = r118900 * r118900;
double r118902 = r118896 * r118901;
double r118903 = r118899 + r118902;
return r118903;
}
double f(double a1, double a2, double th) {
double r118904 = a2;
double r118905 = r118904 * r118904;
double r118906 = a1;
double r118907 = r118906 * r118906;
double r118908 = r118905 + r118907;
double r118909 = sqrt(r118908);
double r118910 = 2.0;
double r118911 = sqrt(r118910);
double r118912 = th;
double r118913 = cos(r118912);
double r118914 = r118911 / r118913;
double r118915 = 2.0;
double r118916 = pow(r118906, r118915);
double r118917 = r118916 + r118905;
double r118918 = sqrt(r118917);
double r118919 = r118914 / r118918;
double r118920 = r118909 / r118919;
return r118920;
}



Bits error versus a1



Bits error versus a2



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