\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\sin th \cdot \frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}double f(double kx, double ky, double th) {
double r33892 = ky;
double r33893 = sin(r33892);
double r33894 = kx;
double r33895 = sin(r33894);
double r33896 = 2.0;
double r33897 = pow(r33895, r33896);
double r33898 = pow(r33893, r33896);
double r33899 = r33897 + r33898;
double r33900 = sqrt(r33899);
double r33901 = r33893 / r33900;
double r33902 = th;
double r33903 = sin(r33902);
double r33904 = r33901 * r33903;
return r33904;
}
double f(double kx, double ky, double th) {
double r33905 = th;
double r33906 = sin(r33905);
double r33907 = ky;
double r33908 = sin(r33907);
double r33909 = kx;
double r33910 = sin(r33909);
double r33911 = 2.0;
double r33912 = pow(r33910, r33911);
double r33913 = pow(r33908, r33911);
double r33914 = r33912 + r33913;
double r33915 = sqrt(r33914);
double r33916 = r33908 / r33915;
double r33917 = r33906 * r33916;
return r33917;
}



Bits error versus kx



Bits error versus ky



Bits error versus th
Results
Initial program 12.5
rmApplied *-commutative12.5
Final simplification12.5
herbie shell --seed 2019305
(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)))