\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\sin th \cdot \frac{\frac{\sin ky}{\sqrt{\sqrt{\left(\sin kx\right)^2 + \left(\sin ky\right)^2}^*}}}{\sqrt{\sqrt{\left(\sin kx\right)^2 + \left(\sin ky\right)^2}^*}}double f(double kx, double ky, double th) {
double r1702177 = ky;
double r1702178 = sin(r1702177);
double r1702179 = kx;
double r1702180 = sin(r1702179);
double r1702181 = 2.0;
double r1702182 = pow(r1702180, r1702181);
double r1702183 = pow(r1702178, r1702181);
double r1702184 = r1702182 + r1702183;
double r1702185 = sqrt(r1702184);
double r1702186 = r1702178 / r1702185;
double r1702187 = th;
double r1702188 = sin(r1702187);
double r1702189 = r1702186 * r1702188;
return r1702189;
}
double f(double kx, double ky, double th) {
double r1702190 = th;
double r1702191 = sin(r1702190);
double r1702192 = ky;
double r1702193 = sin(r1702192);
double r1702194 = kx;
double r1702195 = sin(r1702194);
double r1702196 = hypot(r1702195, r1702193);
double r1702197 = sqrt(r1702196);
double r1702198 = r1702193 / r1702197;
double r1702199 = r1702198 / r1702197;
double r1702200 = r1702191 * r1702199;
return r1702200;
}



Bits error versus kx



Bits error versus ky



Bits error versus th
Results
Initial program 12.3
Simplified8.8
rmApplied add-sqr-sqrt9.1
Applied associate-/r*9.1
Final simplification9.1
herbie shell --seed 2019119 +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)))