\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 r38500 = ky;
double r38501 = sin(r38500);
double r38502 = kx;
double r38503 = sin(r38502);
double r38504 = 2.0;
double r38505 = pow(r38503, r38504);
double r38506 = pow(r38501, r38504);
double r38507 = r38505 + r38506;
double r38508 = sqrt(r38507);
double r38509 = r38501 / r38508;
double r38510 = th;
double r38511 = sin(r38510);
double r38512 = r38509 * r38511;
return r38512;
}
double f(double kx, double ky, double th) {
double r38513 = ky;
double r38514 = sin(r38513);
double r38515 = kx;
double r38516 = sin(r38515);
double r38517 = 2.0;
double r38518 = pow(r38516, r38517);
double r38519 = pow(r38514, r38517);
double r38520 = r38518 + r38519;
double r38521 = sqrt(r38520);
double r38522 = r38514 / r38521;
double r38523 = 0.9999999929828307;
bool r38524 = r38522 <= r38523;
double r38525 = 1.0;
double r38526 = 2.0;
double r38527 = pow(r38516, r38526);
double r38528 = cbrt(r38527);
double r38529 = r38528 * r38528;
double r38530 = r38529 * r38528;
double r38531 = pow(r38514, r38526);
double r38532 = r38530 + r38531;
double r38533 = r38525 / r38532;
double r38534 = sqrt(r38533);
double r38535 = r38534 * r38514;
double r38536 = th;
double r38537 = sin(r38536);
double r38538 = r38535 * r38537;
double r38539 = 0.16666666666666666;
double r38540 = pow(r38515, r38526);
double r38541 = r38539 * r38540;
double r38542 = r38525 - r38541;
double r38543 = r38542 * r38537;
double r38544 = r38524 ? r38538 : r38543;
return r38544;
}



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)))