\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 r34674 = ky;
double r34675 = sin(r34674);
double r34676 = kx;
double r34677 = sin(r34676);
double r34678 = 2.0;
double r34679 = pow(r34677, r34678);
double r34680 = pow(r34675, r34678);
double r34681 = r34679 + r34680;
double r34682 = sqrt(r34681);
double r34683 = r34675 / r34682;
double r34684 = th;
double r34685 = sin(r34684);
double r34686 = r34683 * r34685;
return r34686;
}
double f(double kx, double ky, double th) {
double r34687 = ky;
double r34688 = sin(r34687);
double r34689 = kx;
double r34690 = sin(r34689);
double r34691 = 2.0;
double r34692 = pow(r34690, r34691);
double r34693 = pow(r34688, r34691);
double r34694 = r34692 + r34693;
double r34695 = sqrt(r34694);
double r34696 = r34688 / r34695;
double r34697 = 0.9999999999985937;
bool r34698 = r34696 <= r34697;
double r34699 = 1.0;
double r34700 = sqrt(r34695);
double r34701 = r34699 / r34700;
double r34702 = r34700 / r34688;
double r34703 = r34699 / r34702;
double r34704 = r34701 * r34703;
double r34705 = th;
double r34706 = sin(r34705);
double r34707 = r34704 * r34706;
double r34708 = 0.16666666666666666;
double r34709 = 2.0;
double r34710 = pow(r34689, r34709);
double r34711 = r34708 * r34710;
double r34712 = r34699 - r34711;
double r34713 = r34712 * r34706;
double r34714 = r34698 ? r34707 : r34713;
return r34714;
}



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