\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\sin ky \cdot \frac{\sin th}{\sqrt{\mathsf{hypot}\left({\left(\sin kx\right)}^{\left(\frac{2}{2}\right)}, {\left(\sin ky\right)}^{\left(\frac{2}{2}\right)}\right)} \cdot \sqrt{\mathsf{hypot}\left({\left(\sin kx\right)}^{\left(\frac{2}{2}\right)}, {\left(\sin ky\right)}^{\left(\frac{2}{2}\right)}\right)}}double f(double kx, double ky, double th) {
double r46257 = ky;
double r46258 = sin(r46257);
double r46259 = kx;
double r46260 = sin(r46259);
double r46261 = 2.0;
double r46262 = pow(r46260, r46261);
double r46263 = pow(r46258, r46261);
double r46264 = r46262 + r46263;
double r46265 = sqrt(r46264);
double r46266 = r46258 / r46265;
double r46267 = th;
double r46268 = sin(r46267);
double r46269 = r46266 * r46268;
return r46269;
}
double f(double kx, double ky, double th) {
double r46270 = ky;
double r46271 = sin(r46270);
double r46272 = th;
double r46273 = sin(r46272);
double r46274 = kx;
double r46275 = sin(r46274);
double r46276 = 2.0;
double r46277 = 2.0;
double r46278 = r46276 / r46277;
double r46279 = pow(r46275, r46278);
double r46280 = pow(r46271, r46278);
double r46281 = hypot(r46279, r46280);
double r46282 = sqrt(r46281);
double r46283 = r46282 * r46282;
double r46284 = r46273 / r46283;
double r46285 = r46271 * r46284;
return r46285;
}



Bits error versus kx



Bits error versus ky



Bits error versus th
Results
Initial program 12.2
rmApplied sqr-pow12.2
Applied sqr-pow12.2
Applied hypot-def8.6
rmApplied div-inv8.7
Applied associate-*l*8.7
Simplified8.6
rmApplied add-sqr-sqrt8.9
Final simplification8.9
herbie shell --seed 2019325 +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)))