\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)a2 \cdot \frac{a2 \cdot \cos th}{\sqrt{2}} + \frac{a1 \cdot \cos th}{\frac{\sqrt{2}}{a1}}double f(double a1, double a2, double th) {
double r17535773 = th;
double r17535774 = cos(r17535773);
double r17535775 = 2.0;
double r17535776 = sqrt(r17535775);
double r17535777 = r17535774 / r17535776;
double r17535778 = a1;
double r17535779 = r17535778 * r17535778;
double r17535780 = r17535777 * r17535779;
double r17535781 = a2;
double r17535782 = r17535781 * r17535781;
double r17535783 = r17535777 * r17535782;
double r17535784 = r17535780 + r17535783;
return r17535784;
}
double f(double a1, double a2, double th) {
double r17535785 = a2;
double r17535786 = th;
double r17535787 = cos(r17535786);
double r17535788 = r17535785 * r17535787;
double r17535789 = 2.0;
double r17535790 = sqrt(r17535789);
double r17535791 = r17535788 / r17535790;
double r17535792 = r17535785 * r17535791;
double r17535793 = a1;
double r17535794 = r17535793 * r17535787;
double r17535795 = r17535790 / r17535793;
double r17535796 = r17535794 / r17535795;
double r17535797 = r17535792 + r17535796;
return r17535797;
}



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
Taylor expanded around -inf 0.5
Simplified0.5
Taylor expanded around inf 0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019112
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
(+ (* (/ (cos th) (sqrt 2)) (* a1 a1)) (* (/ (cos th) (sqrt 2)) (* a2 a2))))