\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\left(a2 \cdot a2\right) \cdot \frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} + \frac{a1 \cdot \cos th}{\sqrt{2}} \cdot a1double f(double a1, double a2, double th) {
double r6950933 = th;
double r6950934 = cos(r6950933);
double r6950935 = 2.0;
double r6950936 = sqrt(r6950935);
double r6950937 = r6950934 / r6950936;
double r6950938 = a1;
double r6950939 = r6950938 * r6950938;
double r6950940 = r6950937 * r6950939;
double r6950941 = a2;
double r6950942 = r6950941 * r6950941;
double r6950943 = r6950937 * r6950942;
double r6950944 = r6950940 + r6950943;
return r6950944;
}
double f(double a1, double a2, double th) {
double r6950945 = a2;
double r6950946 = r6950945 * r6950945;
double r6950947 = th;
double r6950948 = cos(r6950947);
double r6950949 = 2.0;
double r6950950 = sqrt(r6950949);
double r6950951 = sqrt(r6950950);
double r6950952 = r6950948 / r6950951;
double r6950953 = r6950952 / r6950951;
double r6950954 = r6950946 * r6950953;
double r6950955 = a1;
double r6950956 = r6950955 * r6950948;
double r6950957 = r6950956 / r6950950;
double r6950958 = r6950957 * r6950955;
double r6950959 = r6950954 + r6950958;
return r6950959;
}



Bits error versus a1



Bits error versus a2



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