\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 ky \cdot \frac{\sin th}{\sqrt{{\left(\sqrt[3]{\sin ky} \cdot \sqrt[3]{\sin ky}\right)}^{2} \cdot {\left(\sqrt[3]{\sin ky}\right)}^{2} + {\left(\sin kx\right)}^{2}}}\\
\mathbf{else}:\\
\;\;\;\;\sin th \cdot \frac{\sin ky}{ky + \left(\left(kx \cdot kx\right) \cdot \frac{1}{12} - \left(ky \cdot ky\right) \cdot \frac{1}{6}\right) \cdot ky}\\
\end{array}double f(double kx, double ky, double th) {
double r1397410 = ky;
double r1397411 = sin(r1397410);
double r1397412 = kx;
double r1397413 = sin(r1397412);
double r1397414 = 2.0;
double r1397415 = pow(r1397413, r1397414);
double r1397416 = pow(r1397411, r1397414);
double r1397417 = r1397415 + r1397416;
double r1397418 = sqrt(r1397417);
double r1397419 = r1397411 / r1397418;
double r1397420 = th;
double r1397421 = sin(r1397420);
double r1397422 = r1397419 * r1397421;
return r1397422;
}
double f(double kx, double ky, double th) {
double r1397423 = ky;
double r1397424 = sin(r1397423);
double r1397425 = kx;
double r1397426 = sin(r1397425);
double r1397427 = 2.0;
double r1397428 = pow(r1397426, r1397427);
double r1397429 = pow(r1397424, r1397427);
double r1397430 = r1397428 + r1397429;
double r1397431 = sqrt(r1397430);
double r1397432 = r1397424 / r1397431;
double r1397433 = 1.0;
bool r1397434 = r1397432 <= r1397433;
double r1397435 = th;
double r1397436 = sin(r1397435);
double r1397437 = cbrt(r1397424);
double r1397438 = r1397437 * r1397437;
double r1397439 = pow(r1397438, r1397427);
double r1397440 = pow(r1397437, r1397427);
double r1397441 = r1397439 * r1397440;
double r1397442 = r1397441 + r1397428;
double r1397443 = sqrt(r1397442);
double r1397444 = r1397436 / r1397443;
double r1397445 = r1397424 * r1397444;
double r1397446 = r1397425 * r1397425;
double r1397447 = 0.08333333333333333;
double r1397448 = r1397446 * r1397447;
double r1397449 = r1397423 * r1397423;
double r1397450 = 0.16666666666666666;
double r1397451 = r1397449 * r1397450;
double r1397452 = r1397448 - r1397451;
double r1397453 = r1397452 * r1397423;
double r1397454 = r1397423 + r1397453;
double r1397455 = r1397424 / r1397454;
double r1397456 = r1397436 * r1397455;
double r1397457 = r1397434 ? r1397445 : r1397456;
return r1397457;
}



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 div-inv11.5
Applied associate-*l*11.6
Simplified11.5
rmApplied add-cube-cbrt12.0
Applied unpow-prod-down12.0
if 1.0 < (/ (sin ky) (sqrt (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0)))) Initial program 62.8
Taylor expanded around 0 28.2
Simplified28.2
Final simplification12.4
herbie shell --seed 2019200
(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)))