\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\left(\frac{\frac{1}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt[3]{\sqrt{2}}}} \cdot \frac{\cos th}{\left|\sqrt[3]{\sqrt{2}}\right|}\right) \cdot \left(a1 \cdot a1\right) + \left(a2 \cdot a2\right) \cdot \left(\frac{\frac{1}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{\sqrt{2}}}} \cdot \frac{\cos th}{\sqrt{\sqrt{\sqrt{2}}}}\right)double f(double a1, double a2, double th) {
double r1436342 = th;
double r1436343 = cos(r1436342);
double r1436344 = 2.0;
double r1436345 = sqrt(r1436344);
double r1436346 = r1436343 / r1436345;
double r1436347 = a1;
double r1436348 = r1436347 * r1436347;
double r1436349 = r1436346 * r1436348;
double r1436350 = a2;
double r1436351 = r1436350 * r1436350;
double r1436352 = r1436346 * r1436351;
double r1436353 = r1436349 + r1436352;
return r1436353;
}
double f(double a1, double a2, double th) {
double r1436354 = 1.0;
double r1436355 = 2.0;
double r1436356 = sqrt(r1436355);
double r1436357 = sqrt(r1436356);
double r1436358 = r1436354 / r1436357;
double r1436359 = cbrt(r1436356);
double r1436360 = sqrt(r1436359);
double r1436361 = r1436358 / r1436360;
double r1436362 = th;
double r1436363 = cos(r1436362);
double r1436364 = fabs(r1436359);
double r1436365 = r1436363 / r1436364;
double r1436366 = r1436361 * r1436365;
double r1436367 = a1;
double r1436368 = r1436367 * r1436367;
double r1436369 = r1436366 * r1436368;
double r1436370 = a2;
double r1436371 = r1436370 * r1436370;
double r1436372 = sqrt(r1436357);
double r1436373 = r1436358 / r1436372;
double r1436374 = r1436363 / r1436372;
double r1436375 = r1436373 * r1436374;
double r1436376 = r1436371 * r1436375;
double r1436377 = r1436369 + r1436376;
return r1436377;
}



Bits error versus a1



Bits error versus a2



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