\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\left(\frac{\cos th}{\sqrt{2}} \cdot a2\right) \cdot a2 + \left(\frac{\frac{1}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt[3]{\sqrt{2}}}} \cdot \frac{\cos th}{\left|\sqrt[3]{\sqrt{2}}\right|}\right) \cdot \left(a1 \cdot a1\right)double f(double a1, double a2, double th) {
double r1283734 = th;
double r1283735 = cos(r1283734);
double r1283736 = 2.0;
double r1283737 = sqrt(r1283736);
double r1283738 = r1283735 / r1283737;
double r1283739 = a1;
double r1283740 = r1283739 * r1283739;
double r1283741 = r1283738 * r1283740;
double r1283742 = a2;
double r1283743 = r1283742 * r1283742;
double r1283744 = r1283738 * r1283743;
double r1283745 = r1283741 + r1283744;
return r1283745;
}
double f(double a1, double a2, double th) {
double r1283746 = th;
double r1283747 = cos(r1283746);
double r1283748 = 2.0;
double r1283749 = sqrt(r1283748);
double r1283750 = r1283747 / r1283749;
double r1283751 = a2;
double r1283752 = r1283750 * r1283751;
double r1283753 = r1283752 * r1283751;
double r1283754 = 1.0;
double r1283755 = sqrt(r1283749);
double r1283756 = r1283754 / r1283755;
double r1283757 = cbrt(r1283749);
double r1283758 = sqrt(r1283757);
double r1283759 = r1283756 / r1283758;
double r1283760 = fabs(r1283757);
double r1283761 = r1283747 / r1283760;
double r1283762 = r1283759 * r1283761;
double r1283763 = a1;
double r1283764 = r1283763 * r1283763;
double r1283765 = r1283762 * r1283764;
double r1283766 = r1283753 + r1283765;
return r1283766;
}



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
rmApplied add-cube-cbrt0.5
Applied sqrt-prod0.6
Applied div-inv0.5
Applied times-frac0.5
Simplified0.5
rmApplied associate-*r*0.5
Final simplification0.5
herbie shell --seed 2019152
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
(+ (* (/ (cos th) (sqrt 2)) (* a1 a1)) (* (/ (cos th) (sqrt 2)) (* a2 a2))))