\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.9999999983692884342190154711715877056122:\\
\;\;\;\;\left(\sqrt{\frac{1}{{\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 r34442 = ky;
double r34443 = sin(r34442);
double r34444 = kx;
double r34445 = sin(r34444);
double r34446 = 2.0;
double r34447 = pow(r34445, r34446);
double r34448 = pow(r34443, r34446);
double r34449 = r34447 + r34448;
double r34450 = sqrt(r34449);
double r34451 = r34443 / r34450;
double r34452 = th;
double r34453 = sin(r34452);
double r34454 = r34451 * r34453;
return r34454;
}
double f(double kx, double ky, double th) {
double r34455 = ky;
double r34456 = sin(r34455);
double r34457 = kx;
double r34458 = sin(r34457);
double r34459 = 2.0;
double r34460 = pow(r34458, r34459);
double r34461 = pow(r34456, r34459);
double r34462 = r34460 + r34461;
double r34463 = sqrt(r34462);
double r34464 = r34456 / r34463;
double r34465 = 0.9999999983692884;
bool r34466 = r34464 <= r34465;
double r34467 = 1.0;
double r34468 = 2.0;
double r34469 = pow(r34458, r34468);
double r34470 = pow(r34456, r34468);
double r34471 = r34469 + r34470;
double r34472 = r34467 / r34471;
double r34473 = sqrt(r34472);
double r34474 = r34473 * r34456;
double r34475 = th;
double r34476 = sin(r34475);
double r34477 = r34474 * r34476;
double r34478 = 0.16666666666666666;
double r34479 = pow(r34457, r34468);
double r34480 = r34478 * r34479;
double r34481 = r34467 - r34480;
double r34482 = r34481 * r34476;
double r34483 = r34466 ? r34477 : r34482;
return r34483;
}



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.9999999983692884Initial program 13.4
rmApplied add-sqr-sqrt13.4
Applied sqrt-prod13.6
Applied *-un-lft-identity13.6
Applied times-frac13.6
Taylor expanded around inf 13.7
if 0.9999999983692884 < (/ (sin ky) (sqrt (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0)))) Initial program 9.5
Taylor expanded around inf 9.9
Taylor expanded around 0 4.6
Final simplification11.9
herbie shell --seed 2019298
(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)))