\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} \cdot \left(a1 \cdot a1\right) + \frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} \cdot \left(a2 \cdot a2\right)double f(double a1, double a2, double th) {
double r91960 = th;
double r91961 = cos(r91960);
double r91962 = 2.0;
double r91963 = sqrt(r91962);
double r91964 = r91961 / r91963;
double r91965 = a1;
double r91966 = r91965 * r91965;
double r91967 = r91964 * r91966;
double r91968 = a2;
double r91969 = r91968 * r91968;
double r91970 = r91964 * r91969;
double r91971 = r91967 + r91970;
return r91971;
}
double f(double a1, double a2, double th) {
double r91972 = th;
double r91973 = cos(r91972);
double r91974 = 2.0;
double r91975 = sqrt(r91974);
double r91976 = sqrt(r91975);
double r91977 = r91973 / r91976;
double r91978 = r91977 / r91976;
double r91979 = a1;
double r91980 = r91979 * r91979;
double r91981 = r91978 * r91980;
double r91982 = a2;
double r91983 = r91982 * r91982;
double r91984 = r91978 * r91983;
double r91985 = r91981 + r91984;
return r91985;
}



Bits error versus a1



Bits error versus a2



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