\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\frac{\cos th}{\sqrt[3]{\sqrt{2}}} \cdot \left(\frac{a2}{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}} \cdot a2\right) + \frac{a1 \cdot \cos th}{\frac{\sqrt{2}}{a1}}double f(double a1, double a2, double th) {
double r6064304 = th;
double r6064305 = cos(r6064304);
double r6064306 = 2.0;
double r6064307 = sqrt(r6064306);
double r6064308 = r6064305 / r6064307;
double r6064309 = a1;
double r6064310 = r6064309 * r6064309;
double r6064311 = r6064308 * r6064310;
double r6064312 = a2;
double r6064313 = r6064312 * r6064312;
double r6064314 = r6064308 * r6064313;
double r6064315 = r6064311 + r6064314;
return r6064315;
}
double f(double a1, double a2, double th) {
double r6064316 = th;
double r6064317 = cos(r6064316);
double r6064318 = 2.0;
double r6064319 = sqrt(r6064318);
double r6064320 = cbrt(r6064319);
double r6064321 = r6064317 / r6064320;
double r6064322 = a2;
double r6064323 = r6064320 * r6064320;
double r6064324 = r6064322 / r6064323;
double r6064325 = r6064324 * r6064322;
double r6064326 = r6064321 * r6064325;
double r6064327 = a1;
double r6064328 = r6064327 * r6064317;
double r6064329 = r6064319 / r6064327;
double r6064330 = r6064328 / r6064329;
double r6064331 = r6064326 + r6064330;
return r6064331;
}



Bits error versus a1



Bits error versus a2



Bits error versus th
Results
Initial program 0.5
Taylor expanded around inf 0.5
Simplified0.5
Taylor expanded around inf 0.5
Simplified0.4
rmApplied add-cube-cbrt0.4
Applied times-frac0.4
Applied associate-*r*0.4
Final simplification0.4
herbie shell --seed 2019119 +o rules:numerics
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
(+ (* (/ (cos th) (sqrt 2)) (* a1 a1)) (* (/ (cos th) (sqrt 2)) (* a2 a2))))