\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 0.99999999298283071:\\
\;\;\;\;\left(\sqrt{\frac{1}{\left(\sqrt[3]{{\left(\sin kx\right)}^{2}} \cdot \sqrt[3]{{\left(\sin kx\right)}^{2}}\right) \cdot \sqrt[3]{{\left(\sin kx\right)}^{2}} + {\left(\sin ky\right)}^{2}}} \cdot \sin ky\right) \cdot \sin th\\
\mathbf{else}:\\
\;\;\;\;\left(1 - \frac{1}{6} \cdot {kx}^{2}\right) \cdot \sin th\\
\end{array}double f(double kx, double ky, double th) {
double r38451 = ky;
double r38452 = sin(r38451);
double r38453 = kx;
double r38454 = sin(r38453);
double r38455 = 2.0;
double r38456 = pow(r38454, r38455);
double r38457 = pow(r38452, r38455);
double r38458 = r38456 + r38457;
double r38459 = sqrt(r38458);
double r38460 = r38452 / r38459;
double r38461 = th;
double r38462 = sin(r38461);
double r38463 = r38460 * r38462;
return r38463;
}
double f(double kx, double ky, double th) {
double r38464 = ky;
double r38465 = sin(r38464);
double r38466 = kx;
double r38467 = sin(r38466);
double r38468 = 2.0;
double r38469 = pow(r38467, r38468);
double r38470 = pow(r38465, r38468);
double r38471 = r38469 + r38470;
double r38472 = sqrt(r38471);
double r38473 = r38465 / r38472;
double r38474 = 0.9999999929828307;
bool r38475 = r38473 <= r38474;
double r38476 = 1.0;
double r38477 = 2.0;
double r38478 = pow(r38467, r38477);
double r38479 = cbrt(r38478);
double r38480 = r38479 * r38479;
double r38481 = r38480 * r38479;
double r38482 = pow(r38465, r38477);
double r38483 = r38481 + r38482;
double r38484 = r38476 / r38483;
double r38485 = sqrt(r38484);
double r38486 = r38485 * r38465;
double r38487 = th;
double r38488 = sin(r38487);
double r38489 = r38486 * r38488;
double r38490 = 0.16666666666666666;
double r38491 = pow(r38466, r38477);
double r38492 = r38490 * r38491;
double r38493 = r38476 - r38492;
double r38494 = r38493 * r38488;
double r38495 = r38475 ? r38489 : r38494;
return r38495;
}



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)))) < 0.9999999929828307Initial program 13.7
Taylor expanded around inf 14.0
rmApplied add-cube-cbrt14.1
if 0.9999999929828307 < (/ (sin ky) (sqrt (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0)))) Initial program 10.1
Taylor expanded around inf 10.6
Taylor expanded around 0 5.0
Final simplification12.4
herbie shell --seed 2020047
(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)))