\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\frac{\frac{\sin th}{\mathsf{hypot}\left(\left(\sin kx\right), \left(\sin ky\right)\right)}}{\frac{1}{\sin ky}}double f(double kx, double ky, double th) {
double r4131442 = ky;
double r4131443 = sin(r4131442);
double r4131444 = kx;
double r4131445 = sin(r4131444);
double r4131446 = 2.0;
double r4131447 = pow(r4131445, r4131446);
double r4131448 = pow(r4131443, r4131446);
double r4131449 = r4131447 + r4131448;
double r4131450 = sqrt(r4131449);
double r4131451 = r4131443 / r4131450;
double r4131452 = th;
double r4131453 = sin(r4131452);
double r4131454 = r4131451 * r4131453;
return r4131454;
}
double f(double kx, double ky, double th) {
double r4131455 = th;
double r4131456 = sin(r4131455);
double r4131457 = kx;
double r4131458 = sin(r4131457);
double r4131459 = ky;
double r4131460 = sin(r4131459);
double r4131461 = hypot(r4131458, r4131460);
double r4131462 = r4131456 / r4131461;
double r4131463 = 1.0;
double r4131464 = r4131463 / r4131460;
double r4131465 = r4131462 / r4131464;
return r4131465;
}



Bits error versus kx



Bits error versus ky



Bits error versus th
Results
Initial program 12.3
Simplified11.3
rmApplied associate-/l*8.7
rmApplied div-inv8.8
Applied associate-/r*8.9
Final simplification8.9
herbie shell --seed 2019128 +o rules:numerics
(FPCore (kx ky th)
:name "Toniolo and Linder, Equation (3b), real"
(* (/ (sin ky) (sqrt (+ (pow (sin kx) 2) (pow (sin ky) 2)))) (sin th)))