\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\frac{\frac{\cos th \cdot \mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}}}{\sqrt[3]{\sqrt{2}}}double f(double a1, double a2, double th) {
double r85353 = th;
double r85354 = cos(r85353);
double r85355 = 2.0;
double r85356 = sqrt(r85355);
double r85357 = r85354 / r85356;
double r85358 = a1;
double r85359 = r85358 * r85358;
double r85360 = r85357 * r85359;
double r85361 = a2;
double r85362 = r85361 * r85361;
double r85363 = r85357 * r85362;
double r85364 = r85360 + r85363;
return r85364;
}
double f(double a1, double a2, double th) {
double r85365 = th;
double r85366 = cos(r85365);
double r85367 = a1;
double r85368 = a2;
double r85369 = r85368 * r85368;
double r85370 = fma(r85367, r85367, r85369);
double r85371 = r85366 * r85370;
double r85372 = 2.0;
double r85373 = sqrt(r85372);
double r85374 = cbrt(r85373);
double r85375 = r85374 * r85374;
double r85376 = r85371 / r85375;
double r85377 = r85376 / r85374;
return r85377;
}



Bits error versus a1



Bits error versus a2



Bits error versus th
Initial program 0.6
Simplified0.5
rmApplied add-cube-cbrt0.5
Applied associate-/r*0.5
Final simplification0.5
herbie shell --seed 2019209 +o rules:numerics
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
:precision binary64
(+ (* (/ (cos th) (sqrt 2)) (* a1 a1)) (* (/ (cos th) (sqrt 2)) (* a2 a2))))