\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 r42119 = ky;
double r42120 = sin(r42119);
double r42121 = kx;
double r42122 = sin(r42121);
double r42123 = 2.0;
double r42124 = pow(r42122, r42123);
double r42125 = pow(r42120, r42123);
double r42126 = r42124 + r42125;
double r42127 = sqrt(r42126);
double r42128 = r42120 / r42127;
double r42129 = th;
double r42130 = sin(r42129);
double r42131 = r42128 * r42130;
return r42131;
}
double f(double kx, double ky, double th) {
double r42132 = ky;
double r42133 = sin(r42132);
double r42134 = 1.0;
double r42135 = kx;
double r42136 = sin(r42135);
double r42137 = hypot(r42133, r42136);
double r42138 = r42134 / r42137;
double r42139 = r42133 * r42138;
double r42140 = th;
double r42141 = sin(r42140);
double r42142 = r42139 * r42141;
return r42142;
}



Bits error versus kx



Bits error versus ky



Bits error versus th
Results
Initial program 12.9
Taylor expanded around inf 12.9
Simplified9.0
rmApplied div-inv9.1
Final simplification9.1
herbie shell --seed 2020002 +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)))