double f(double kx, double ky, double th) {
double r1367240 = ky;
double r1367241 = sin(r1367240);
double r1367242 = kx;
double r1367243 = sin(r1367242);
double r1367244 = 2.0;
double r1367245 = pow(r1367243, r1367244);
double r1367246 = pow(r1367241, r1367244);
double r1367247 = r1367245 + r1367246;
double r1367248 = sqrt(r1367247);
double r1367249 = r1367241 / r1367248;
double r1367250 = th;
double r1367251 = sin(r1367250);
double r1367252 = r1367249 * r1367251;
return r1367252;
}
double f(double kx, double ky, double th) {
double r1367253 = th;
double r1367254 = sin(r1367253);
double r1367255 = kx;
double r1367256 = sin(r1367255);
double r1367257 = ky;
double r1367258 = sin(r1367257);
double r1367259 = hypot(r1367256, r1367258);
double r1367260 = r1367254 / r1367259;
double r1367261 = r1367260 * r1367258;
return r1367261;
}
\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\frac{\sin th}{\sqrt{\left(\sin kx\right)^2 + \left(\sin ky\right)^2}^*} \cdot \sin ky


Bits error versus kx



Bits error versus ky



Bits error versus th
Initial program 12.1
Simplified8.5
rmApplied *-un-lft-identity8.5
Applied associate-/l*8.6
rmApplied un-div-inv8.5
rmApplied associate-/r/8.6
Final simplification8.6
herbie shell --seed 2019102 +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)))