\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 r2205983 = th;
double r2205984 = cos(r2205983);
double r2205985 = 2.0;
double r2205986 = sqrt(r2205985);
double r2205987 = r2205984 / r2205986;
double r2205988 = a1;
double r2205989 = r2205988 * r2205988;
double r2205990 = r2205987 * r2205989;
double r2205991 = a2;
double r2205992 = r2205991 * r2205991;
double r2205993 = r2205987 * r2205992;
double r2205994 = r2205990 + r2205993;
return r2205994;
}
double f(double a1, double a2, double th) {
double r2205995 = a2;
double r2205996 = th;
double r2205997 = cos(r2205996);
double r2205998 = 2.0;
double r2205999 = sqrt(r2205998);
double r2206000 = r2205997 / r2205999;
double r2206001 = r2205995 * r2206000;
double r2206002 = r2205995 * r2206001;
double r2206003 = a1;
double r2206004 = r2205999 / r2206003;
double r2206005 = r2206003 / r2206004;
double r2206006 = r2206005 * r2205997;
double r2206007 = r2206002 + r2206006;
return r2206007;
}



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 2019152 +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))))