\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\left(\frac{\sqrt[3]{\sin ky} \cdot \sqrt[3]{\sin ky}}{\sqrt[3]{\mathsf{hypot}\left({\left(\sin kx\right)}^{\left(\frac{2}{2}\right)}, {\left(\sin ky\right)}^{\left(\frac{2}{2}\right)}\right)} \cdot \sqrt[3]{\mathsf{hypot}\left({\left(\sin kx\right)}^{\left(\frac{2}{2}\right)}, {\left(\sin ky\right)}^{\left(\frac{2}{2}\right)}\right)}} \cdot \frac{\sqrt[3]{\sin ky}}{\sqrt[3]{\mathsf{hypot}\left({\left(\sin kx\right)}^{\left(\frac{2}{2}\right)}, {\left(\sin ky\right)}^{\left(\frac{2}{2}\right)}\right)}}\right) \cdot \sin thdouble f(double kx, double ky, double th) {
double r62868 = ky;
double r62869 = sin(r62868);
double r62870 = kx;
double r62871 = sin(r62870);
double r62872 = 2.0;
double r62873 = pow(r62871, r62872);
double r62874 = pow(r62869, r62872);
double r62875 = r62873 + r62874;
double r62876 = sqrt(r62875);
double r62877 = r62869 / r62876;
double r62878 = th;
double r62879 = sin(r62878);
double r62880 = r62877 * r62879;
return r62880;
}
double f(double kx, double ky, double th) {
double r62881 = ky;
double r62882 = sin(r62881);
double r62883 = cbrt(r62882);
double r62884 = r62883 * r62883;
double r62885 = kx;
double r62886 = sin(r62885);
double r62887 = 2.0;
double r62888 = 2.0;
double r62889 = r62887 / r62888;
double r62890 = pow(r62886, r62889);
double r62891 = pow(r62882, r62889);
double r62892 = hypot(r62890, r62891);
double r62893 = cbrt(r62892);
double r62894 = r62893 * r62893;
double r62895 = r62884 / r62894;
double r62896 = r62883 / r62893;
double r62897 = r62895 * r62896;
double r62898 = th;
double r62899 = sin(r62898);
double r62900 = r62897 * r62899;
return r62900;
}



Bits error versus kx



Bits error versus ky



Bits error versus th
Results
Initial program 12.3
rmApplied sqr-pow12.3
Applied sqr-pow12.3
Applied hypot-def8.8
rmApplied add-cube-cbrt9.7
Applied add-cube-cbrt9.3
Applied times-frac9.3
Final simplification9.3
herbie shell --seed 2020001 +o rules:numerics
(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)))