\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\frac{\left(a1 \cdot a1\right) \cdot \cos th}{\sqrt{2}} + \frac{\left(\cos th \cdot \frac{\frac{1}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt[3]{\sqrt{2}}}}\right) \cdot \left(a2 \cdot a2\right)}{\left|\sqrt[3]{\sqrt{2}}\right|}double f(double a1, double a2, double th) {
double r2855034 = th;
double r2855035 = cos(r2855034);
double r2855036 = 2.0;
double r2855037 = sqrt(r2855036);
double r2855038 = r2855035 / r2855037;
double r2855039 = a1;
double r2855040 = r2855039 * r2855039;
double r2855041 = r2855038 * r2855040;
double r2855042 = a2;
double r2855043 = r2855042 * r2855042;
double r2855044 = r2855038 * r2855043;
double r2855045 = r2855041 + r2855044;
return r2855045;
}
double f(double a1, double a2, double th) {
double r2855046 = a1;
double r2855047 = r2855046 * r2855046;
double r2855048 = th;
double r2855049 = cos(r2855048);
double r2855050 = r2855047 * r2855049;
double r2855051 = 2.0;
double r2855052 = sqrt(r2855051);
double r2855053 = r2855050 / r2855052;
double r2855054 = 1.0;
double r2855055 = sqrt(r2855052);
double r2855056 = r2855054 / r2855055;
double r2855057 = cbrt(r2855052);
double r2855058 = sqrt(r2855057);
double r2855059 = r2855056 / r2855058;
double r2855060 = r2855049 * r2855059;
double r2855061 = a2;
double r2855062 = r2855061 * r2855061;
double r2855063 = r2855060 * r2855062;
double r2855064 = fabs(r2855057);
double r2855065 = r2855063 / r2855064;
double r2855066 = r2855053 + r2855065;
return r2855066;
}



Bits error versus a1



Bits error versus a2



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