\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\left(\sin ky \cdot \frac{1}{\mathsf{hypot}\left(\sin ky, \sin kx\right)}\right) \cdot \sin thdouble f(double kx, double ky, double th) {
double r37877 = ky;
double r37878 = sin(r37877);
double r37879 = kx;
double r37880 = sin(r37879);
double r37881 = 2.0;
double r37882 = pow(r37880, r37881);
double r37883 = pow(r37878, r37881);
double r37884 = r37882 + r37883;
double r37885 = sqrt(r37884);
double r37886 = r37878 / r37885;
double r37887 = th;
double r37888 = sin(r37887);
double r37889 = r37886 * r37888;
return r37889;
}
double f(double kx, double ky, double th) {
double r37890 = ky;
double r37891 = sin(r37890);
double r37892 = 1.0;
double r37893 = kx;
double r37894 = sin(r37893);
double r37895 = hypot(r37891, r37894);
double r37896 = r37892 / r37895;
double r37897 = r37891 * r37896;
double r37898 = th;
double r37899 = sin(r37898);
double r37900 = r37897 * r37899;
return r37900;
}



Bits error versus kx



Bits error versus ky



Bits error versus th
Results
Initial program 12.6
Taylor expanded around inf 12.6
Simplified8.9
rmApplied div-inv9.0
Final simplification9.0
herbie shell --seed 2020089 +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)))