\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 \cdot a1 + a2 \cdot a2}{\sqrt{2}}double f(double a1, double a2, double th) {
double r100754 = th;
double r100755 = cos(r100754);
double r100756 = 2.0;
double r100757 = sqrt(r100756);
double r100758 = r100755 / r100757;
double r100759 = a1;
double r100760 = r100759 * r100759;
double r100761 = r100758 * r100760;
double r100762 = a2;
double r100763 = r100762 * r100762;
double r100764 = r100758 * r100763;
double r100765 = r100761 + r100764;
return r100765;
}
double f(double a1, double a2, double th) {
double r100766 = th;
double r100767 = cos(r100766);
double r100768 = a1;
double r100769 = r100768 * r100768;
double r100770 = a2;
double r100771 = r100770 * r100770;
double r100772 = r100769 + r100771;
double r100773 = 2.0;
double r100774 = sqrt(r100773);
double r100775 = r100772 / r100774;
double r100776 = r100767 * r100775;
return r100776;
}



Bits error versus a1



Bits error versus a2



Bits error versus th
Results
Initial program 0.5
Simplified0.5
rmApplied div-inv0.6
Applied associate-*l*0.6
Simplified0.5
Final simplification0.5
herbie shell --seed 2019353
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
:precision binary64
(+ (* (/ (cos th) (sqrt 2)) (* a1 a1)) (* (/ (cos th) (sqrt 2)) (* a2 a2))))