\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 r62824 = ky;
double r62825 = sin(r62824);
double r62826 = kx;
double r62827 = sin(r62826);
double r62828 = 2.0;
double r62829 = pow(r62827, r62828);
double r62830 = pow(r62825, r62828);
double r62831 = r62829 + r62830;
double r62832 = sqrt(r62831);
double r62833 = r62825 / r62832;
double r62834 = th;
double r62835 = sin(r62834);
double r62836 = r62833 * r62835;
return r62836;
}
double f(double kx, double ky, double th) {
double r62837 = ky;
double r62838 = sin(r62837);
double r62839 = cbrt(r62838);
double r62840 = r62839 * r62839;
double r62841 = kx;
double r62842 = sin(r62841);
double r62843 = 2.0;
double r62844 = 2.0;
double r62845 = r62843 / r62844;
double r62846 = pow(r62842, r62845);
double r62847 = pow(r62838, r62845);
double r62848 = hypot(r62846, r62847);
double r62849 = cbrt(r62848);
double r62850 = r62849 * r62849;
double r62851 = r62840 / r62850;
double r62852 = r62839 / r62849;
double r62853 = r62851 * r62852;
double r62854 = th;
double r62855 = sin(r62854);
double r62856 = r62853 * r62855;
return r62856;
}



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)))