\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:\\
\;\;\;\;\frac{\sin ky}{\sqrt{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sqrt{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}} \cdot \sin th\\
\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 r34822 = ky;
double r34823 = sin(r34822);
double r34824 = kx;
double r34825 = sin(r34824);
double r34826 = 2.0;
double r34827 = pow(r34825, r34826);
double r34828 = pow(r34823, r34826);
double r34829 = r34827 + r34828;
double r34830 = sqrt(r34829);
double r34831 = r34823 / r34830;
double r34832 = th;
double r34833 = sin(r34832);
double r34834 = r34831 * r34833;
return r34834;
}
double f(double kx, double ky, double th) {
double r34835 = ky;
double r34836 = sin(r34835);
double r34837 = kx;
double r34838 = sin(r34837);
double r34839 = 2.0;
double r34840 = pow(r34838, r34839);
double r34841 = pow(r34836, r34839);
double r34842 = r34840 + r34841;
double r34843 = sqrt(r34842);
double r34844 = r34836 / r34843;
double r34845 = 1.0;
bool r34846 = r34844 <= r34845;
double r34847 = sqrt(r34843);
double r34848 = r34847 * r34847;
double r34849 = r34836 / r34848;
double r34850 = th;
double r34851 = sin(r34850);
double r34852 = r34849 * r34851;
double r34853 = 0.08333333333333333;
double r34854 = 2.0;
double r34855 = pow(r34837, r34854);
double r34856 = r34855 * r34835;
double r34857 = r34853 * r34856;
double r34858 = r34835 + r34857;
double r34859 = 0.16666666666666666;
double r34860 = 3.0;
double r34861 = pow(r34835, r34860);
double r34862 = r34859 * r34861;
double r34863 = r34858 - r34862;
double r34864 = r34836 / r34863;
double r34865 = r34864 * r34851;
double r34866 = r34846 ? r34852 : r34865;
return r34866;
}



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.4
rmApplied add-sqr-sqrt11.4
Applied sqrt-prod11.7
if 1.0 < (/ (sin ky) (sqrt (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0)))) Initial program 62.7
Taylor expanded around 0 30.0
Final simplification12.2
herbie shell --seed 2019212
(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)))