\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 r34354 = ky;
double r34355 = sin(r34354);
double r34356 = kx;
double r34357 = sin(r34356);
double r34358 = 2.0;
double r34359 = pow(r34357, r34358);
double r34360 = pow(r34355, r34358);
double r34361 = r34359 + r34360;
double r34362 = sqrt(r34361);
double r34363 = r34355 / r34362;
double r34364 = th;
double r34365 = sin(r34364);
double r34366 = r34363 * r34365;
return r34366;
}
double f(double kx, double ky, double th) {
double r34367 = ky;
double r34368 = sin(r34367);
double r34369 = kx;
double r34370 = sin(r34369);
double r34371 = 2.0;
double r34372 = pow(r34370, r34371);
double r34373 = pow(r34368, r34371);
double r34374 = r34372 + r34373;
double r34375 = sqrt(r34374);
double r34376 = r34368 / r34375;
double r34377 = 0.9999999999985937;
bool r34378 = r34376 <= r34377;
double r34379 = 1.0;
double r34380 = sqrt(r34375);
double r34381 = r34379 / r34380;
double r34382 = r34380 / r34368;
double r34383 = r34379 / r34382;
double r34384 = r34381 * r34383;
double r34385 = th;
double r34386 = sin(r34385);
double r34387 = r34384 * r34386;
double r34388 = 0.16666666666666666;
double r34389 = 2.0;
double r34390 = pow(r34369, r34389);
double r34391 = r34388 * r34390;
double r34392 = r34379 - r34391;
double r34393 = r34392 * r34386;
double r34394 = r34378 ? r34387 : r34393;
return r34394;
}



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