\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.999999999998593680494707314210245385766:\\
\;\;\;\;\left(\frac{1}{\sqrt{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}} \cdot \frac{1}{\frac{\sqrt{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}}{\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 r34365 = ky;
double r34366 = sin(r34365);
double r34367 = kx;
double r34368 = sin(r34367);
double r34369 = 2.0;
double r34370 = pow(r34368, r34369);
double r34371 = pow(r34366, r34369);
double r34372 = r34370 + r34371;
double r34373 = sqrt(r34372);
double r34374 = r34366 / r34373;
double r34375 = th;
double r34376 = sin(r34375);
double r34377 = r34374 * r34376;
return r34377;
}
double f(double kx, double ky, double th) {
double r34378 = ky;
double r34379 = sin(r34378);
double r34380 = kx;
double r34381 = sin(r34380);
double r34382 = 2.0;
double r34383 = pow(r34381, r34382);
double r34384 = pow(r34379, r34382);
double r34385 = r34383 + r34384;
double r34386 = sqrt(r34385);
double r34387 = r34379 / r34386;
double r34388 = 0.9999999999985937;
bool r34389 = r34387 <= r34388;
double r34390 = 1.0;
double r34391 = sqrt(r34386);
double r34392 = r34390 / r34391;
double r34393 = r34391 / r34379;
double r34394 = r34390 / r34393;
double r34395 = r34392 * r34394;
double r34396 = th;
double r34397 = sin(r34396);
double r34398 = r34395 * r34397;
double r34399 = 0.16666666666666666;
double r34400 = 2.0;
double r34401 = pow(r34380, r34400);
double r34402 = r34399 * r34401;
double r34403 = r34390 - r34402;
double r34404 = r34403 * r34397;
double r34405 = r34389 ? r34398 : r34404;
return r34405;
}



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.9999999999985937Initial program 13.1
rmApplied add-sqr-sqrt13.1
Applied sqrt-prod13.3
Applied *-un-lft-identity13.3
Applied times-frac13.3
rmApplied clear-num13.3
if 0.9999999999985937 < (/ (sin ky) (sqrt (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0)))) Initial program 8.7
Taylor expanded around inf 9.2
Taylor expanded around 0 3.8
Final simplification11.4
herbie shell --seed 2019325
(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)))