\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}{\frac{\sqrt{\sqrt{\sqrt{2}}}}{a2 \cdot a2 + a1 \cdot a1}}}{\frac{\sqrt{\sqrt{\sqrt{2}}}}{\frac{1}{\sqrt{\sqrt{2}}}}}double f(double a1, double a2, double th) {
double r3131176 = th;
double r3131177 = cos(r3131176);
double r3131178 = 2.0;
double r3131179 = sqrt(r3131178);
double r3131180 = r3131177 / r3131179;
double r3131181 = a1;
double r3131182 = r3131181 * r3131181;
double r3131183 = r3131180 * r3131182;
double r3131184 = a2;
double r3131185 = r3131184 * r3131184;
double r3131186 = r3131180 * r3131185;
double r3131187 = r3131183 + r3131186;
return r3131187;
}
double f(double a1, double a2, double th) {
double r3131188 = th;
double r3131189 = cos(r3131188);
double r3131190 = 2.0;
double r3131191 = sqrt(r3131190);
double r3131192 = sqrt(r3131191);
double r3131193 = sqrt(r3131192);
double r3131194 = a2;
double r3131195 = r3131194 * r3131194;
double r3131196 = a1;
double r3131197 = r3131196 * r3131196;
double r3131198 = r3131195 + r3131197;
double r3131199 = r3131193 / r3131198;
double r3131200 = r3131189 / r3131199;
double r3131201 = 1.0;
double r3131202 = r3131201 / r3131192;
double r3131203 = r3131193 / r3131202;
double r3131204 = r3131200 / r3131203;
return r3131204;
}



Bits error versus a1



Bits error versus a2



Bits error versus th
Results
Initial program 0.5
Simplified0.7
rmApplied add-sqr-sqrt0.7
Applied sqrt-prod0.8
Applied associate-/l*0.7
rmApplied div-inv0.9
Applied add-sqr-sqrt0.9
Applied sqrt-prod0.9
Applied sqrt-prod0.9
Applied times-frac0.6
Applied associate-/r*0.6
Final simplification0.6
herbie shell --seed 2019171
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
(+ (* (/ (cos th) (sqrt 2.0)) (* a1 a1)) (* (/ (cos th) (sqrt 2.0)) (* a2 a2))))