\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\frac{1}{\frac{\sqrt{\left(\sqrt[3]{{\left(\sin kx\right)}^{2}} \cdot \sqrt[3]{{\left(\sin kx\right)}^{2}}\right) \cdot \sqrt[3]{{\left(\sin kx\right)}^{2}} + {\left(\sin ky\right)}^{2}}}{\sin ky}} \cdot \sin thdouble f(double kx, double ky, double th) {
double r35788 = ky;
double r35789 = sin(r35788);
double r35790 = kx;
double r35791 = sin(r35790);
double r35792 = 2.0;
double r35793 = pow(r35791, r35792);
double r35794 = pow(r35789, r35792);
double r35795 = r35793 + r35794;
double r35796 = sqrt(r35795);
double r35797 = r35789 / r35796;
double r35798 = th;
double r35799 = sin(r35798);
double r35800 = r35797 * r35799;
return r35800;
}
double f(double kx, double ky, double th) {
double r35801 = 1.0;
double r35802 = kx;
double r35803 = sin(r35802);
double r35804 = 2.0;
double r35805 = pow(r35803, r35804);
double r35806 = cbrt(r35805);
double r35807 = r35806 * r35806;
double r35808 = r35807 * r35806;
double r35809 = ky;
double r35810 = sin(r35809);
double r35811 = pow(r35810, r35804);
double r35812 = r35808 + r35811;
double r35813 = sqrt(r35812);
double r35814 = r35813 / r35810;
double r35815 = r35801 / r35814;
double r35816 = th;
double r35817 = sin(r35816);
double r35818 = r35815 * r35817;
return r35818;
}



Bits error versus kx



Bits error versus ky



Bits error versus th
Results
Initial program 12.7
rmApplied clear-num12.8
Taylor expanded around inf 12.8
rmApplied add-cube-cbrt12.9
Final simplification12.9
herbie shell --seed 2019356
(FPCore (kx ky th)
:name "Toniolo and Linder, Equation (3b), real"
:precision binary64
(* (/ (sin ky) (sqrt (+ (pow (sin kx) 2) (pow (sin ky) 2)))) (sin th)))