\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.9999999513989566990446178351703565567732:\\
\;\;\;\;\frac{\sqrt{1} \cdot \sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \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 r28398 = ky;
double r28399 = sin(r28398);
double r28400 = kx;
double r28401 = sin(r28400);
double r28402 = 2.0;
double r28403 = pow(r28401, r28402);
double r28404 = pow(r28399, r28402);
double r28405 = r28403 + r28404;
double r28406 = sqrt(r28405);
double r28407 = r28399 / r28406;
double r28408 = th;
double r28409 = sin(r28408);
double r28410 = r28407 * r28409;
return r28410;
}
double f(double kx, double ky, double th) {
double r28411 = ky;
double r28412 = sin(r28411);
double r28413 = kx;
double r28414 = sin(r28413);
double r28415 = 2.0;
double r28416 = pow(r28414, r28415);
double r28417 = pow(r28412, r28415);
double r28418 = r28416 + r28417;
double r28419 = sqrt(r28418);
double r28420 = r28412 / r28419;
double r28421 = 0.9999999513989567;
bool r28422 = r28420 <= r28421;
double r28423 = 1.0;
double r28424 = sqrt(r28423);
double r28425 = r28424 * r28412;
double r28426 = 2.0;
double r28427 = pow(r28414, r28426);
double r28428 = pow(r28412, r28426);
double r28429 = r28427 + r28428;
double r28430 = sqrt(r28429);
double r28431 = r28425 / r28430;
double r28432 = th;
double r28433 = sin(r28432);
double r28434 = r28431 * r28433;
double r28435 = 0.16666666666666666;
double r28436 = pow(r28413, r28426);
double r28437 = r28435 * r28436;
double r28438 = r28423 - r28437;
double r28439 = r28438 * r28433;
double r28440 = r28422 ? r28434 : r28439;
return r28440;
}



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.9999999513989567Initial program 13.6
Taylor expanded around inf 13.9
rmApplied sqrt-div13.6
Applied associate-*l/13.6
if 0.9999999513989567 < (/ (sin ky) (sqrt (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0)))) Initial program 9.4
Taylor expanded around inf 10.0
Taylor expanded around 0 4.6
Final simplification11.8
herbie shell --seed 2019308
(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)))