\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}{\sqrt{\sqrt{\sqrt[3]{2} \cdot \sqrt[3]{2}}}} \cdot \left(\frac{\frac{1}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{\sqrt[3]{2}}}} \cdot \left(a1 \cdot a1\right)\right) + \left(\cos th \cdot \frac{a2}{\sqrt{2}}\right) \cdot a2double f(double a1, double a2, double th) {
double r68658 = th;
double r68659 = cos(r68658);
double r68660 = 2.0;
double r68661 = sqrt(r68660);
double r68662 = r68659 / r68661;
double r68663 = a1;
double r68664 = r68663 * r68663;
double r68665 = r68662 * r68664;
double r68666 = a2;
double r68667 = r68666 * r68666;
double r68668 = r68662 * r68667;
double r68669 = r68665 + r68668;
return r68669;
}
double f(double a1, double a2, double th) {
double r68670 = th;
double r68671 = cos(r68670);
double r68672 = 2.0;
double r68673 = cbrt(r68672);
double r68674 = r68673 * r68673;
double r68675 = sqrt(r68674);
double r68676 = sqrt(r68675);
double r68677 = r68671 / r68676;
double r68678 = 1.0;
double r68679 = sqrt(r68672);
double r68680 = sqrt(r68679);
double r68681 = r68678 / r68680;
double r68682 = sqrt(r68673);
double r68683 = sqrt(r68682);
double r68684 = r68681 / r68683;
double r68685 = a1;
double r68686 = r68685 * r68685;
double r68687 = r68684 * r68686;
double r68688 = r68677 * r68687;
double r68689 = a2;
double r68690 = r68689 / r68679;
double r68691 = r68671 * r68690;
double r68692 = r68691 * r68689;
double r68693 = r68688 + r68692;
return r68693;
}



Bits error versus a1



Bits error versus a2



Bits error versus th
Results
Initial program 0.5
rmApplied associate-*r*0.5
rmApplied div-inv0.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 sqrt-prod0.5
Applied div-inv0.5
Applied times-frac0.4
Applied associate-*l*0.4
Final simplification0.4
herbie shell --seed 2020046
(FPCore (a1 a2 th)
:name "Migdal et al, Equation (64)"
:precision binary64
(+ (* (/ (cos th) (sqrt 2)) (* a1 a1)) (* (/ (cos th) (sqrt 2)) (* a2 a2))))