\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(\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 r35363 = ky;
double r35364 = sin(r35363);
double r35365 = kx;
double r35366 = sin(r35365);
double r35367 = 2.0;
double r35368 = pow(r35366, r35367);
double r35369 = pow(r35364, r35367);
double r35370 = r35368 + r35369;
double r35371 = sqrt(r35370);
double r35372 = r35364 / r35371;
double r35373 = th;
double r35374 = sin(r35373);
double r35375 = r35372 * r35374;
return r35375;
}
double f(double kx, double ky, double th) {
double r35376 = ky;
double r35377 = sin(r35376);
double r35378 = kx;
double r35379 = sin(r35378);
double r35380 = 2.0;
double r35381 = pow(r35379, r35380);
double r35382 = pow(r35377, r35380);
double r35383 = r35381 + r35382;
double r35384 = sqrt(r35383);
double r35385 = r35377 / r35384;
double r35386 = 0.9999999929828307;
bool r35387 = r35385 <= r35386;
double r35388 = 1.0;
double r35389 = 2.0;
double r35390 = pow(r35379, r35389);
double r35391 = pow(r35377, r35389);
double r35392 = r35390 + r35391;
double r35393 = r35388 / r35392;
double r35394 = sqrt(r35393);
double r35395 = r35394 * r35377;
double r35396 = th;
double r35397 = sin(r35396);
double r35398 = r35395 * r35397;
double r35399 = 0.16666666666666666;
double r35400 = pow(r35378, r35389);
double r35401 = r35399 * r35400;
double r35402 = r35388 - r35401;
double r35403 = r35402 * r35397;
double r35404 = r35387 ? r35398 : r35403;
return r35404;
}



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 2.6
Taylor expanded around inf 3.0
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 simplification3.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)))