\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 \left(a2 \cdot a2\right)\right) \cdot \frac{\cos th}{\sqrt{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}}} + \frac{a1}{\frac{\sqrt[3]{\sqrt{2}}}{\cos th}} \cdot \frac{a1}{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}}double f(double a1, double a2, double th) {
double r2974432 = th;
double r2974433 = cos(r2974432);
double r2974434 = 2.0;
double r2974435 = sqrt(r2974434);
double r2974436 = r2974433 / r2974435;
double r2974437 = a1;
double r2974438 = r2974437 * r2974437;
double r2974439 = r2974436 * r2974438;
double r2974440 = a2;
double r2974441 = r2974440 * r2974440;
double r2974442 = r2974436 * r2974441;
double r2974443 = r2974439 + r2974442;
return r2974443;
}
double f(double a1, double a2, double th) {
double r2974444 = 1.0;
double r2974445 = 2.0;
double r2974446 = sqrt(r2974445);
double r2974447 = sqrt(r2974446);
double r2974448 = r2974444 / r2974447;
double r2974449 = cbrt(r2974446);
double r2974450 = sqrt(r2974449);
double r2974451 = r2974448 / r2974450;
double r2974452 = a2;
double r2974453 = r2974452 * r2974452;
double r2974454 = r2974451 * r2974453;
double r2974455 = th;
double r2974456 = cos(r2974455);
double r2974457 = r2974449 * r2974449;
double r2974458 = sqrt(r2974457);
double r2974459 = r2974456 / r2974458;
double r2974460 = r2974454 * r2974459;
double r2974461 = a1;
double r2974462 = r2974449 / r2974456;
double r2974463 = r2974461 / r2974462;
double r2974464 = r2974461 / r2974457;
double r2974465 = r2974463 * r2974464;
double r2974466 = r2974460 + r2974465;
return r2974466;
}



Bits error versus a1



Bits error versus a2



Bits error versus th
Results
Initial program 0.5
rmApplied clear-num0.5
Applied associate-*l/0.5
Simplified0.5
rmApplied add-sqr-sqrt0.5
Applied sqrt-prod0.5
Applied associate-/r*0.5
rmApplied add-cube-cbrt0.5
Applied sqrt-prod0.5
Applied div-inv0.5
Applied times-frac0.5
Applied associate-*l*0.4
rmApplied *-un-lft-identity0.4
Applied add-cube-cbrt0.4
Applied times-frac0.5
Applied times-frac0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019158 +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))))