\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(\left(\sqrt[3]{\frac{\sin ky}{\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]{\sqrt[3]{\frac{\sin ky}{\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}}}}} \cdot \sqrt[3]{\sqrt[3]{\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}}}\right)\right) \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 r32976 = ky;
double r32977 = sin(r32976);
double r32978 = kx;
double r32979 = sin(r32978);
double r32980 = 2.0;
double r32981 = pow(r32979, r32980);
double r32982 = pow(r32977, r32980);
double r32983 = r32981 + r32982;
double r32984 = sqrt(r32983);
double r32985 = r32977 / r32984;
double r32986 = th;
double r32987 = sin(r32986);
double r32988 = r32985 * r32987;
return r32988;
}
double f(double kx, double ky, double th) {
double r32989 = ky;
double r32990 = sin(r32989);
double r32991 = kx;
double r32992 = sin(r32991);
double r32993 = 2.0;
double r32994 = pow(r32992, r32993);
double r32995 = pow(r32990, r32993);
double r32996 = r32994 + r32995;
double r32997 = sqrt(r32996);
double r32998 = r32990 / r32997;
double r32999 = 1.0;
bool r33000 = r32998 <= r32999;
double r33001 = cbrt(r32998);
double r33002 = r33001 * r33001;
double r33003 = cbrt(r33002);
double r33004 = cbrt(r33001);
double r33005 = r33003 * r33004;
double r33006 = r33002 * r33005;
double r33007 = th;
double r33008 = sin(r33007);
double r33009 = r33006 * r33008;
double r33010 = 0.08333333333333333;
double r33011 = 2.0;
double r33012 = pow(r32991, r33011);
double r33013 = r33012 * r32989;
double r33014 = r33010 * r33013;
double r33015 = r32989 + r33014;
double r33016 = 0.16666666666666666;
double r33017 = 3.0;
double r33018 = pow(r32989, r33017);
double r33019 = r33016 * r33018;
double r33020 = r33015 - r33019;
double r33021 = r32990 / r33020;
double r33022 = r33021 * r33008;
double r33023 = r33000 ? r33009 : r33022;
return r33023;
}



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 10.8
rmApplied add-cube-cbrt11.2
rmApplied add-cube-cbrt11.2
Applied cbrt-prod11.2
if 1.0 < (/ (sin ky) (sqrt (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0)))) Initial program 62.5
Taylor expanded around 0 29.4
Final simplification11.8
herbie shell --seed 2019297
(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)))