\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\begin{array}{l}
\mathbf{if}\;\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \le 1:\\
\;\;\;\;\sin ky \cdot \frac{\frac{\sin th}{\sqrt{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}}}{\sqrt{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sin ky}{\left(ky + \frac{1}{12} \cdot \left({kx}^{2} \cdot ky\right)\right) - \frac{1}{6} \cdot {ky}^{3}} \cdot \sin th\\
\end{array}double f(double kx, double ky, double th) {
double r35884 = ky;
double r35885 = sin(r35884);
double r35886 = kx;
double r35887 = sin(r35886);
double r35888 = 2.0;
double r35889 = pow(r35887, r35888);
double r35890 = pow(r35885, r35888);
double r35891 = r35889 + r35890;
double r35892 = sqrt(r35891);
double r35893 = r35885 / r35892;
double r35894 = th;
double r35895 = sin(r35894);
double r35896 = r35893 * r35895;
return r35896;
}
double f(double kx, double ky, double th) {
double r35897 = ky;
double r35898 = sin(r35897);
double r35899 = kx;
double r35900 = sin(r35899);
double r35901 = 2.0;
double r35902 = pow(r35900, r35901);
double r35903 = pow(r35898, r35901);
double r35904 = r35902 + r35903;
double r35905 = sqrt(r35904);
double r35906 = r35898 / r35905;
double r35907 = 1.0;
bool r35908 = r35906 <= r35907;
double r35909 = th;
double r35910 = sin(r35909);
double r35911 = sqrt(r35905);
double r35912 = r35910 / r35911;
double r35913 = r35912 / r35911;
double r35914 = r35898 * r35913;
double r35915 = 0.08333333333333333;
double r35916 = 2.0;
double r35917 = pow(r35899, r35916);
double r35918 = r35917 * r35897;
double r35919 = r35915 * r35918;
double r35920 = r35897 + r35919;
double r35921 = 0.16666666666666666;
double r35922 = 3.0;
double r35923 = pow(r35897, r35922);
double r35924 = r35921 * r35923;
double r35925 = r35920 - r35924;
double r35926 = r35898 / r35925;
double r35927 = r35926 * r35910;
double r35928 = r35908 ? r35914 : r35927;
return r35928;
}



Bits error versus kx



Bits error versus ky



Bits error versus th
Results
if (/ (sin ky) (sqrt (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0)))) < 1.0Initial program 2.2
rmApplied div-inv2.3
Applied associate-*l*2.3
Simplified2.2
rmApplied add-sqr-sqrt2.2
Applied sqrt-prod2.5
Applied associate-/r*2.5
if 1.0 < (/ (sin ky) (sqrt (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0)))) Initial program 62.5
Taylor expanded around 0 27.5
Final simplification3.3
herbie shell --seed 2020059
(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)))