\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\left(\frac{1}{\sqrt{\left|\sqrt[3]{2}\right|}} \cdot \frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{\sqrt[3]{2}}}}\right) \cdot \left(a1 \cdot a1\right) + \frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} \cdot \left(a2 \cdot a2\right)double f(double a1, double a2, double th) {
double r72655 = th;
double r72656 = cos(r72655);
double r72657 = 2.0;
double r72658 = sqrt(r72657);
double r72659 = r72656 / r72658;
double r72660 = a1;
double r72661 = r72660 * r72660;
double r72662 = r72659 * r72661;
double r72663 = a2;
double r72664 = r72663 * r72663;
double r72665 = r72659 * r72664;
double r72666 = r72662 + r72665;
return r72666;
}
double f(double a1, double a2, double th) {
double r72667 = 1.0;
double r72668 = 2.0;
double r72669 = cbrt(r72668);
double r72670 = fabs(r72669);
double r72671 = sqrt(r72670);
double r72672 = r72667 / r72671;
double r72673 = th;
double r72674 = cos(r72673);
double r72675 = sqrt(r72668);
double r72676 = sqrt(r72675);
double r72677 = r72674 / r72676;
double r72678 = sqrt(r72669);
double r72679 = sqrt(r72678);
double r72680 = r72677 / r72679;
double r72681 = r72672 * r72680;
double r72682 = a1;
double r72683 = r72682 * r72682;
double r72684 = r72681 * r72683;
double r72685 = r72677 / r72676;
double r72686 = a2;
double r72687 = r72686 * r72686;
double r72688 = r72685 * r72687;
double r72689 = r72684 + r72688;
return r72689;
}



Bits error versus a1



Bits error versus a2



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