\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:\\
\;\;\;\;\left(\sqrt[3]{\frac{\sin ky}{\left(\sqrt[3]{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sqrt[3]{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}\right) \cdot \sqrt[3]{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}}} \cdot \sqrt[3]{\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}}\right) \cdot \left(\sqrt[3]{\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}} \cdot \sin th\right)\\
\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 r40794 = ky;
double r40795 = sin(r40794);
double r40796 = kx;
double r40797 = sin(r40796);
double r40798 = 2.0;
double r40799 = pow(r40797, r40798);
double r40800 = pow(r40795, r40798);
double r40801 = r40799 + r40800;
double r40802 = sqrt(r40801);
double r40803 = r40795 / r40802;
double r40804 = th;
double r40805 = sin(r40804);
double r40806 = r40803 * r40805;
return r40806;
}
double f(double kx, double ky, double th) {
double r40807 = ky;
double r40808 = sin(r40807);
double r40809 = kx;
double r40810 = sin(r40809);
double r40811 = 2.0;
double r40812 = pow(r40810, r40811);
double r40813 = pow(r40808, r40811);
double r40814 = r40812 + r40813;
double r40815 = sqrt(r40814);
double r40816 = r40808 / r40815;
double r40817 = 1.0;
bool r40818 = r40816 <= r40817;
double r40819 = cbrt(r40815);
double r40820 = r40819 * r40819;
double r40821 = r40820 * r40819;
double r40822 = r40808 / r40821;
double r40823 = cbrt(r40822);
double r40824 = cbrt(r40816);
double r40825 = r40823 * r40824;
double r40826 = th;
double r40827 = sin(r40826);
double r40828 = r40824 * r40827;
double r40829 = r40825 * r40828;
double r40830 = 0.08333333333333333;
double r40831 = 2.0;
double r40832 = pow(r40809, r40831);
double r40833 = r40832 * r40807;
double r40834 = r40830 * r40833;
double r40835 = r40807 + r40834;
double r40836 = 0.16666666666666666;
double r40837 = 3.0;
double r40838 = pow(r40807, r40837);
double r40839 = r40836 * r40838;
double r40840 = r40835 - r40839;
double r40841 = r40808 / r40840;
double r40842 = r40841 * r40827;
double r40843 = r40818 ? r40829 : r40842;
return r40843;
}



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 add-cube-cbrt11.4
Applied associate-*l*11.4
rmApplied add-cube-cbrt11.4
if 1.0 < (/ (sin ky) (sqrt (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0)))) Initial program 62.9
Taylor expanded around 0 31.8
Final simplification12.0
herbie shell --seed 2020083
(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)))