\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\frac{\frac{\cos th \cdot \left(a1 \cdot a1\right)}{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}}}{\sqrt[3]{\sqrt{2}}} + \cos th \cdot \frac{{a2}^{2}}{\sqrt{2}}double f(double a1, double a2, double th) {
double r109786 = th;
double r109787 = cos(r109786);
double r109788 = 2.0;
double r109789 = sqrt(r109788);
double r109790 = r109787 / r109789;
double r109791 = a1;
double r109792 = r109791 * r109791;
double r109793 = r109790 * r109792;
double r109794 = a2;
double r109795 = r109794 * r109794;
double r109796 = r109790 * r109795;
double r109797 = r109793 + r109796;
return r109797;
}
double f(double a1, double a2, double th) {
double r109798 = th;
double r109799 = cos(r109798);
double r109800 = a1;
double r109801 = r109800 * r109800;
double r109802 = r109799 * r109801;
double r109803 = 2.0;
double r109804 = sqrt(r109803);
double r109805 = cbrt(r109804);
double r109806 = r109805 * r109805;
double r109807 = r109802 / r109806;
double r109808 = r109807 / r109805;
double r109809 = a2;
double r109810 = 2.0;
double r109811 = pow(r109809, r109810);
double r109812 = r109811 / r109804;
double r109813 = r109799 * r109812;
double r109814 = r109808 + r109813;
return r109814;
}



Bits error versus a1



Bits error versus a2



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