\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\frac{\frac{1}{\sqrt{\sqrt{\sqrt{2}}}}}{\frac{\sqrt{\sqrt{2}}}{\frac{\cos th}{\sqrt{\sqrt{\sqrt{2}}}}}} \cdot \left(a1 \cdot a1 + a2 \cdot a2\right)double f(double a1, double a2, double th) {
double r9997178 = th;
double r9997179 = cos(r9997178);
double r9997180 = 2.0;
double r9997181 = sqrt(r9997180);
double r9997182 = r9997179 / r9997181;
double r9997183 = a1;
double r9997184 = r9997183 * r9997183;
double r9997185 = r9997182 * r9997184;
double r9997186 = a2;
double r9997187 = r9997186 * r9997186;
double r9997188 = r9997182 * r9997187;
double r9997189 = r9997185 + r9997188;
return r9997189;
}
double f(double a1, double a2, double th) {
double r9997190 = 1.0;
double r9997191 = 2.0;
double r9997192 = sqrt(r9997191);
double r9997193 = sqrt(r9997192);
double r9997194 = sqrt(r9997193);
double r9997195 = r9997190 / r9997194;
double r9997196 = th;
double r9997197 = cos(r9997196);
double r9997198 = r9997197 / r9997194;
double r9997199 = r9997193 / r9997198;
double r9997200 = r9997195 / r9997199;
double r9997201 = a1;
double r9997202 = r9997201 * r9997201;
double r9997203 = a2;
double r9997204 = r9997203 * r9997203;
double r9997205 = r9997202 + r9997204;
double r9997206 = r9997200 * r9997205;
return r9997206;
}



Bits error versus a1



Bits error versus a2



Bits error versus th
Results
Initial program 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 *-un-lft-identity0.5
Applied times-frac0.5
Applied associate-/l*0.5
Final simplification0.5
herbie shell --seed 2019174
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
(+ (* (/ (cos th) (sqrt 2.0)) (* a1 a1)) (* (/ (cos th) (sqrt 2.0)) (* a2 a2))))