\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\sin th \cdot \frac{1}{\sqrt{\sqrt{\sin kx \cdot \sin kx + \sin ky \cdot \sin ky}} \cdot \frac{\sqrt{\sqrt{\sin kx \cdot \sin kx + \sin ky \cdot \sin ky}}}{\sin ky}}double f(double kx, double ky, double th) {
double r707895 = ky;
double r707896 = sin(r707895);
double r707897 = kx;
double r707898 = sin(r707897);
double r707899 = 2.0;
double r707900 = pow(r707898, r707899);
double r707901 = pow(r707896, r707899);
double r707902 = r707900 + r707901;
double r707903 = sqrt(r707902);
double r707904 = r707896 / r707903;
double r707905 = th;
double r707906 = sin(r707905);
double r707907 = r707904 * r707906;
return r707907;
}
double f(double kx, double ky, double th) {
double r707908 = th;
double r707909 = sin(r707908);
double r707910 = 1.0;
double r707911 = kx;
double r707912 = sin(r707911);
double r707913 = r707912 * r707912;
double r707914 = ky;
double r707915 = sin(r707914);
double r707916 = r707915 * r707915;
double r707917 = r707913 + r707916;
double r707918 = sqrt(r707917);
double r707919 = sqrt(r707918);
double r707920 = r707919 / r707915;
double r707921 = r707919 * r707920;
double r707922 = r707910 / r707921;
double r707923 = r707909 * r707922;
return r707923;
}



Bits error versus kx



Bits error versus ky



Bits error versus th
Results
Initial program 12.3
Simplified12.3
rmApplied clear-num12.3
rmApplied *-un-lft-identity12.3
Applied add-sqr-sqrt12.6
Applied times-frac12.6
Simplified12.6
Final simplification12.6
herbie shell --seed 2019138
(FPCore (kx ky th)
:name "Toniolo and Linder, Equation (3b), real"
(* (/ (sin ky) (sqrt (+ (pow (sin kx) 2) (pow (sin ky) 2)))) (sin th)))