\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 \left(\frac{1}{\sqrt{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}} \cdot \frac{\sin th}{\sqrt{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\sin ky}{ky \cdot \left(kx \cdot \left(kx \cdot \frac{1}{12}\right) - \left(ky \cdot ky\right) \cdot \frac{1}{6}\right) + ky} \cdot \sin th\\
\end{array}double f(double kx, double ky, double th) {
double r1403913 = ky;
double r1403914 = sin(r1403913);
double r1403915 = kx;
double r1403916 = sin(r1403915);
double r1403917 = 2.0;
double r1403918 = pow(r1403916, r1403917);
double r1403919 = pow(r1403914, r1403917);
double r1403920 = r1403918 + r1403919;
double r1403921 = sqrt(r1403920);
double r1403922 = r1403914 / r1403921;
double r1403923 = th;
double r1403924 = sin(r1403923);
double r1403925 = r1403922 * r1403924;
return r1403925;
}
double f(double kx, double ky, double th) {
double r1403926 = ky;
double r1403927 = sin(r1403926);
double r1403928 = kx;
double r1403929 = sin(r1403928);
double r1403930 = 2.0;
double r1403931 = pow(r1403929, r1403930);
double r1403932 = pow(r1403927, r1403930);
double r1403933 = r1403931 + r1403932;
double r1403934 = sqrt(r1403933);
double r1403935 = r1403927 / r1403934;
double r1403936 = 1.0;
bool r1403937 = r1403935 <= r1403936;
double r1403938 = 1.0;
double r1403939 = sqrt(r1403934);
double r1403940 = r1403938 / r1403939;
double r1403941 = th;
double r1403942 = sin(r1403941);
double r1403943 = r1403942 / r1403939;
double r1403944 = r1403940 * r1403943;
double r1403945 = r1403927 * r1403944;
double r1403946 = 0.08333333333333333;
double r1403947 = r1403928 * r1403946;
double r1403948 = r1403928 * r1403947;
double r1403949 = r1403926 * r1403926;
double r1403950 = 0.16666666666666666;
double r1403951 = r1403949 * r1403950;
double r1403952 = r1403948 - r1403951;
double r1403953 = r1403926 * r1403952;
double r1403954 = r1403953 + r1403926;
double r1403955 = r1403927 / r1403954;
double r1403956 = r1403955 * r1403942;
double r1403957 = r1403937 ? r1403945 : r1403956;
return r1403957;
}



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 11.0
rmApplied div-inv11.1
Applied associate-*l*11.1
Simplified11.1
rmApplied add-sqr-sqrt11.1
Applied sqrt-prod11.3
Applied *-un-lft-identity11.3
Applied times-frac11.3
if 1.0 < (/ (sin ky) (sqrt (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0)))) Initial program 62.7
Taylor expanded around 0 29.3
Simplified29.3
Final simplification11.8
herbie shell --seed 2019172
(FPCore (kx ky th)
:name "Toniolo and Linder, Equation (3b), real"
(* (/ (sin ky) (sqrt (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0)))) (sin th)))