\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{\frac{{a1}^{2}}{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}}}{\sqrt[3]{\sqrt{2}}} + \frac{\cos th \cdot {a2}^{2}}{\sqrt{2}}double f(double a1, double a2, double th) {
double r80816 = th;
double r80817 = cos(r80816);
double r80818 = 2.0;
double r80819 = sqrt(r80818);
double r80820 = r80817 / r80819;
double r80821 = a1;
double r80822 = r80821 * r80821;
double r80823 = r80820 * r80822;
double r80824 = a2;
double r80825 = r80824 * r80824;
double r80826 = r80820 * r80825;
double r80827 = r80823 + r80826;
return r80827;
}
double f(double a1, double a2, double th) {
double r80828 = th;
double r80829 = cos(r80828);
double r80830 = a1;
double r80831 = 2.0;
double r80832 = pow(r80830, r80831);
double r80833 = 2.0;
double r80834 = sqrt(r80833);
double r80835 = cbrt(r80834);
double r80836 = r80835 * r80835;
double r80837 = r80832 / r80836;
double r80838 = r80837 / r80835;
double r80839 = r80829 * r80838;
double r80840 = a2;
double r80841 = pow(r80840, r80831);
double r80842 = r80829 * r80841;
double r80843 = r80842 / r80834;
double r80844 = r80839 + r80843;
return r80844;
}



Bits error versus a1



Bits error versus a2



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