\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}{\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 r38155 = ky;
double r38156 = sin(r38155);
double r38157 = kx;
double r38158 = sin(r38157);
double r38159 = 2.0;
double r38160 = pow(r38158, r38159);
double r38161 = pow(r38156, r38159);
double r38162 = r38160 + r38161;
double r38163 = sqrt(r38162);
double r38164 = r38156 / r38163;
double r38165 = th;
double r38166 = sin(r38165);
double r38167 = r38164 * r38166;
return r38167;
}
double f(double kx, double ky, double th) {
double r38168 = ky;
double r38169 = sin(r38168);
double r38170 = kx;
double r38171 = sin(r38170);
double r38172 = 2.0;
double r38173 = pow(r38171, r38172);
double r38174 = pow(r38169, r38172);
double r38175 = r38173 + r38174;
double r38176 = sqrt(r38175);
double r38177 = r38169 / r38176;
double r38178 = 1.0;
bool r38179 = r38177 <= r38178;
double r38180 = cbrt(r38177);
double r38181 = r38180 * r38180;
double r38182 = th;
double r38183 = sin(r38182);
double r38184 = r38180 * r38183;
double r38185 = r38181 * r38184;
double r38186 = 0.08333333333333333;
double r38187 = 2.0;
double r38188 = pow(r38170, r38187);
double r38189 = r38188 * r38168;
double r38190 = r38186 * r38189;
double r38191 = r38168 + r38190;
double r38192 = 0.16666666666666666;
double r38193 = 3.0;
double r38194 = pow(r38168, r38193);
double r38195 = r38192 * r38194;
double r38196 = r38191 - r38195;
double r38197 = r38169 / r38196;
double r38198 = r38197 * r38183;
double r38199 = r38179 ? r38185 : r38198;
return r38199;
}



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