\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\sin th \cdot \left(\frac{1}{\sqrt{\sin kx \cdot \sin kx + \sin ky \cdot \sin ky}} \cdot \sin ky\right)double f(double kx, double ky, double th) {
double r817903 = ky;
double r817904 = sin(r817903);
double r817905 = kx;
double r817906 = sin(r817905);
double r817907 = 2.0;
double r817908 = pow(r817906, r817907);
double r817909 = pow(r817904, r817907);
double r817910 = r817908 + r817909;
double r817911 = sqrt(r817910);
double r817912 = r817904 / r817911;
double r817913 = th;
double r817914 = sin(r817913);
double r817915 = r817912 * r817914;
return r817915;
}
double f(double kx, double ky, double th) {
double r817916 = th;
double r817917 = sin(r817916);
double r817918 = 1.0;
double r817919 = kx;
double r817920 = sin(r817919);
double r817921 = r817920 * r817920;
double r817922 = ky;
double r817923 = sin(r817922);
double r817924 = r817923 * r817923;
double r817925 = r817921 + r817924;
double r817926 = sqrt(r817925);
double r817927 = r817918 / r817926;
double r817928 = r817927 * r817923;
double r817929 = r817917 * r817928;
return r817929;
}



Bits error versus kx



Bits error versus ky



Bits error versus th
Results
Initial program 12.2
Simplified12.2
rmApplied *-un-lft-identity12.2
Applied associate-/l*12.2
rmApplied div-inv12.3
Applied *-un-lft-identity12.3
Applied times-frac12.3
Simplified12.3
Final simplification12.3
herbie shell --seed 2019139
(FPCore (kx ky th)
:name "Toniolo and Linder, Equation (3b), real"
(* (/ (sin ky) (sqrt (+ (pow (sin kx) 2) (pow (sin ky) 2)))) (sin th)))