\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\frac{\frac{\frac{\cos th \cdot \mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\left|\sqrt[3]{\sqrt{2}}\right| \cdot \sqrt{\sqrt{2}}}}{\sqrt{\sqrt[3]{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}}}}}{\sqrt{\sqrt[3]{\sqrt[3]{\sqrt{2}}}}}double f(double a1, double a2, double th) {
double r149270 = th;
double r149271 = cos(r149270);
double r149272 = 2.0;
double r149273 = sqrt(r149272);
double r149274 = r149271 / r149273;
double r149275 = a1;
double r149276 = r149275 * r149275;
double r149277 = r149274 * r149276;
double r149278 = a2;
double r149279 = r149278 * r149278;
double r149280 = r149274 * r149279;
double r149281 = r149277 + r149280;
return r149281;
}
double f(double a1, double a2, double th) {
double r149282 = th;
double r149283 = cos(r149282);
double r149284 = a1;
double r149285 = a2;
double r149286 = r149285 * r149285;
double r149287 = fma(r149284, r149284, r149286);
double r149288 = r149283 * r149287;
double r149289 = 2.0;
double r149290 = sqrt(r149289);
double r149291 = cbrt(r149290);
double r149292 = fabs(r149291);
double r149293 = sqrt(r149290);
double r149294 = r149292 * r149293;
double r149295 = r149288 / r149294;
double r149296 = r149291 * r149291;
double r149297 = cbrt(r149296);
double r149298 = sqrt(r149297);
double r149299 = r149295 / r149298;
double r149300 = cbrt(r149291);
double r149301 = sqrt(r149300);
double r149302 = r149299 / r149301;
return r149302;
}



Bits error versus a1



Bits error versus a2



Bits error versus th
Initial program 0.5
Simplified0.5
rmApplied add-sqr-sqrt0.5
Applied sqrt-prod0.6
Applied associate-/r*0.5
rmApplied add-cube-cbrt0.5
Applied sqrt-prod0.7
Applied associate-/r*0.5
Simplified0.4
rmApplied add-cube-cbrt0.4
Applied cbrt-prod0.4
Applied sqrt-prod0.4
Applied associate-/r*0.5
Final simplification0.5
herbie shell --seed 2020036 +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))))