\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 \cdot \sqrt{a1 \cdot a1 + a2 \cdot a2}}{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}} \cdot \frac{\sqrt{a1 \cdot a1 + a2 \cdot a2}}{\sqrt[3]{\sqrt{2}}}double f(double a1, double a2, double th) {
double r71395 = th;
double r71396 = cos(r71395);
double r71397 = 2.0;
double r71398 = sqrt(r71397);
double r71399 = r71396 / r71398;
double r71400 = a1;
double r71401 = r71400 * r71400;
double r71402 = r71399 * r71401;
double r71403 = a2;
double r71404 = r71403 * r71403;
double r71405 = r71399 * r71404;
double r71406 = r71402 + r71405;
return r71406;
}
double f(double a1, double a2, double th) {
double r71407 = th;
double r71408 = cos(r71407);
double r71409 = a1;
double r71410 = r71409 * r71409;
double r71411 = a2;
double r71412 = r71411 * r71411;
double r71413 = r71410 + r71412;
double r71414 = sqrt(r71413);
double r71415 = r71408 * r71414;
double r71416 = 2.0;
double r71417 = sqrt(r71416);
double r71418 = cbrt(r71417);
double r71419 = r71418 * r71418;
double r71420 = r71415 / r71419;
double r71421 = r71414 / r71418;
double r71422 = r71420 * r71421;
return r71422;
}



Bits error versus a1



Bits error versus a2



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