\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 th \cdot \frac{\sin ky}{\sqrt{{\left(\sqrt[3]{\sin kx}\right)}^{2} \cdot {\left(\left(\left(\sqrt[3]{\sqrt[3]{\sin kx}} \cdot \sqrt[3]{\sqrt[3]{\sin kx}}\right) \cdot \sqrt[3]{\sqrt[3]{\sin kx}}\right) \cdot \sqrt[3]{\sin kx}\right)}^{2} + {\left(\sin ky\right)}^{2}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sin ky}{ky + \left(\left(kx \cdot kx\right) \cdot \frac{1}{12} - ky \cdot \left(\frac{1}{6} \cdot ky\right)\right) \cdot ky} \cdot \sin th\\
\end{array}double f(double kx, double ky, double th) {
double r1394250 = ky;
double r1394251 = sin(r1394250);
double r1394252 = kx;
double r1394253 = sin(r1394252);
double r1394254 = 2.0;
double r1394255 = pow(r1394253, r1394254);
double r1394256 = pow(r1394251, r1394254);
double r1394257 = r1394255 + r1394256;
double r1394258 = sqrt(r1394257);
double r1394259 = r1394251 / r1394258;
double r1394260 = th;
double r1394261 = sin(r1394260);
double r1394262 = r1394259 * r1394261;
return r1394262;
}
double f(double kx, double ky, double th) {
double r1394263 = ky;
double r1394264 = sin(r1394263);
double r1394265 = kx;
double r1394266 = sin(r1394265);
double r1394267 = 2.0;
double r1394268 = pow(r1394266, r1394267);
double r1394269 = pow(r1394264, r1394267);
double r1394270 = r1394268 + r1394269;
double r1394271 = sqrt(r1394270);
double r1394272 = r1394264 / r1394271;
double r1394273 = 1.0;
bool r1394274 = r1394272 <= r1394273;
double r1394275 = th;
double r1394276 = sin(r1394275);
double r1394277 = cbrt(r1394266);
double r1394278 = pow(r1394277, r1394267);
double r1394279 = cbrt(r1394277);
double r1394280 = r1394279 * r1394279;
double r1394281 = r1394280 * r1394279;
double r1394282 = r1394281 * r1394277;
double r1394283 = pow(r1394282, r1394267);
double r1394284 = r1394278 * r1394283;
double r1394285 = r1394284 + r1394269;
double r1394286 = sqrt(r1394285);
double r1394287 = r1394264 / r1394286;
double r1394288 = r1394276 * r1394287;
double r1394289 = r1394265 * r1394265;
double r1394290 = 0.08333333333333333;
double r1394291 = r1394289 * r1394290;
double r1394292 = 0.16666666666666666;
double r1394293 = r1394292 * r1394263;
double r1394294 = r1394263 * r1394293;
double r1394295 = r1394291 - r1394294;
double r1394296 = r1394295 * r1394263;
double r1394297 = r1394263 + r1394296;
double r1394298 = r1394264 / r1394297;
double r1394299 = r1394298 * r1394276;
double r1394300 = r1394274 ? r1394288 : r1394299;
return r1394300;
}



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.0
Applied unpow-prod-down11.1
rmApplied add-cube-cbrt11.1
if 1.0 < (/ (sin ky) (sqrt (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0)))) Initial program 62.6
rmApplied add-cube-cbrt62.6
Applied unpow-prod-down62.6
Taylor expanded around 0 30.2
Simplified30.2
Final simplification11.7
herbie shell --seed 2019170
(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)))