\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\left(\sqrt{\frac{1}{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin ky\right) \cdot \sin thdouble f(double kx, double ky, double th) {
double r32395 = ky;
double r32396 = sin(r32395);
double r32397 = kx;
double r32398 = sin(r32397);
double r32399 = 2.0;
double r32400 = pow(r32398, r32399);
double r32401 = pow(r32396, r32399);
double r32402 = r32400 + r32401;
double r32403 = sqrt(r32402);
double r32404 = r32396 / r32403;
double r32405 = th;
double r32406 = sin(r32405);
double r32407 = r32404 * r32406;
return r32407;
}
double f(double kx, double ky, double th) {
double r32408 = 1.0;
double r32409 = kx;
double r32410 = sin(r32409);
double r32411 = 2.0;
double r32412 = pow(r32410, r32411);
double r32413 = ky;
double r32414 = sin(r32413);
double r32415 = pow(r32414, r32411);
double r32416 = r32412 + r32415;
double r32417 = r32408 / r32416;
double r32418 = sqrt(r32417);
double r32419 = r32418 * r32414;
double r32420 = th;
double r32421 = sin(r32420);
double r32422 = r32419 * r32421;
return r32422;
}



Bits error versus kx



Bits error versus ky



Bits error versus th
Results
Initial program 12.3
rmApplied add-sqr-sqrt12.3
Applied sqrt-prod12.5
Applied *-un-lft-identity12.5
Applied times-frac12.6
Taylor expanded around inf 12.5
Final simplification12.5
herbie shell --seed 2019323
(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)))