\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\cos th \cdot \frac{{a1}^{2}}{\sqrt{2}} + \frac{\frac{1}{\sqrt{\sqrt{\sqrt{2}}}}}{\sqrt{\sqrt{\sqrt{2}}}} \cdot \left(\frac{\cos th}{\sqrt{\sqrt{2}}} \cdot \left(a2 \cdot a2\right)\right)double f(double a1, double a2, double th) {
double r112865 = th;
double r112866 = cos(r112865);
double r112867 = 2.0;
double r112868 = sqrt(r112867);
double r112869 = r112866 / r112868;
double r112870 = a1;
double r112871 = r112870 * r112870;
double r112872 = r112869 * r112871;
double r112873 = a2;
double r112874 = r112873 * r112873;
double r112875 = r112869 * r112874;
double r112876 = r112872 + r112875;
return r112876;
}
double f(double a1, double a2, double th) {
double r112877 = th;
double r112878 = cos(r112877);
double r112879 = a1;
double r112880 = 2.0;
double r112881 = pow(r112879, r112880);
double r112882 = 2.0;
double r112883 = sqrt(r112882);
double r112884 = r112881 / r112883;
double r112885 = r112878 * r112884;
double r112886 = 1.0;
double r112887 = sqrt(r112883);
double r112888 = sqrt(r112887);
double r112889 = r112886 / r112888;
double r112890 = r112889 / r112888;
double r112891 = r112878 / r112887;
double r112892 = a2;
double r112893 = r112892 * r112892;
double r112894 = r112891 * r112893;
double r112895 = r112890 * r112894;
double r112896 = r112885 + r112895;
return r112896;
}



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 add-sqr-sqrt0.5
Applied sqrt-prod0.5
Applied associate-/r*0.5
rmApplied add-sqr-sqrt0.5
Applied sqrt-prod0.5
Applied sqrt-prod0.5
Applied add-sqr-sqrt0.5
Applied sqrt-prod0.5
Applied sqrt-prod0.5
Applied *-un-lft-identity0.5
Applied times-frac0.5
Applied times-frac0.5
Applied associate-*l*0.6
Simplified0.4
Final simplification0.4
herbie shell --seed 2019362
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
:precision binary64
(+ (* (/ (cos th) (sqrt 2)) (* a1 a1)) (* (/ (cos th) (sqrt 2)) (* a2 a2))))