\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\frac{\cos th \cdot {a2}^{2}}{\sqrt{2}} + \left(\cos th \cdot \frac{a1}{\sqrt{\sqrt{2}}}\right) \cdot \frac{a1}{\sqrt{\sqrt{2}}}double f(double a1, double a2, double th) {
double r63766 = th;
double r63767 = cos(r63766);
double r63768 = 2.0;
double r63769 = sqrt(r63768);
double r63770 = r63767 / r63769;
double r63771 = a1;
double r63772 = r63771 * r63771;
double r63773 = r63770 * r63772;
double r63774 = a2;
double r63775 = r63774 * r63774;
double r63776 = r63770 * r63775;
double r63777 = r63773 + r63776;
return r63777;
}
double f(double a1, double a2, double th) {
double r63778 = th;
double r63779 = cos(r63778);
double r63780 = a2;
double r63781 = 2.0;
double r63782 = pow(r63780, r63781);
double r63783 = r63779 * r63782;
double r63784 = 2.0;
double r63785 = sqrt(r63784);
double r63786 = r63783 / r63785;
double r63787 = a1;
double r63788 = sqrt(r63785);
double r63789 = r63787 / r63788;
double r63790 = r63779 * r63789;
double r63791 = r63790 * r63789;
double r63792 = r63786 + r63791;
return r63792;
}



Bits error versus a1



Bits error versus a2



Bits error versus th
Results
Initial program 0.5
rmApplied *-un-lft-identity0.5
Applied *-un-lft-identity0.5
Applied times-frac0.5
Applied associate-*l*0.5
Simplified0.5
rmApplied div-inv0.5
Applied associate-*l*0.5
Simplified0.5
rmApplied add-sqr-sqrt0.5
Applied sqrt-prod0.5
Applied unpow20.5
Applied times-frac0.5
Applied associate-*r*0.5
Final simplification0.5
herbie shell --seed 2019199
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
(+ (* (/ (cos th) (sqrt 2.0)) (* a1 a1)) (* (/ (cos th) (sqrt 2.0)) (* a2 a2))))