\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 1:\\
\;\;\;\;\frac{\sin th}{\sqrt{{\left(\sin ky\right)}^{2} + \left(\sqrt[3]{{\left(\sin kx\right)}^{2}} \cdot \sqrt[3]{{\left(\sin kx\right)}^{2}}\right) \cdot \sqrt[3]{{\left(\sin kx\right)}^{2}}}} \cdot \sin ky\\
\mathbf{else}:\\
\;\;\;\;\sin th \cdot \frac{\sin ky}{ky + \left(kx \cdot \left(kx \cdot \frac{1}{12}\right) - \frac{1}{6} \cdot \left(ky \cdot ky\right)\right) \cdot ky}\\
\end{array}double f(double kx, double ky, double th) {
double r1267847 = ky;
double r1267848 = sin(r1267847);
double r1267849 = kx;
double r1267850 = sin(r1267849);
double r1267851 = 2.0;
double r1267852 = pow(r1267850, r1267851);
double r1267853 = pow(r1267848, r1267851);
double r1267854 = r1267852 + r1267853;
double r1267855 = sqrt(r1267854);
double r1267856 = r1267848 / r1267855;
double r1267857 = th;
double r1267858 = sin(r1267857);
double r1267859 = r1267856 * r1267858;
return r1267859;
}
double f(double kx, double ky, double th) {
double r1267860 = ky;
double r1267861 = sin(r1267860);
double r1267862 = kx;
double r1267863 = sin(r1267862);
double r1267864 = 2.0;
double r1267865 = pow(r1267863, r1267864);
double r1267866 = pow(r1267861, r1267864);
double r1267867 = r1267865 + r1267866;
double r1267868 = sqrt(r1267867);
double r1267869 = r1267861 / r1267868;
double r1267870 = 1.0;
bool r1267871 = r1267869 <= r1267870;
double r1267872 = th;
double r1267873 = sin(r1267872);
double r1267874 = cbrt(r1267865);
double r1267875 = r1267874 * r1267874;
double r1267876 = r1267875 * r1267874;
double r1267877 = r1267866 + r1267876;
double r1267878 = sqrt(r1267877);
double r1267879 = r1267873 / r1267878;
double r1267880 = r1267879 * r1267861;
double r1267881 = 0.08333333333333333;
double r1267882 = r1267862 * r1267881;
double r1267883 = r1267862 * r1267882;
double r1267884 = 0.16666666666666666;
double r1267885 = r1267860 * r1267860;
double r1267886 = r1267884 * r1267885;
double r1267887 = r1267883 - r1267886;
double r1267888 = r1267887 * r1267860;
double r1267889 = r1267860 + r1267888;
double r1267890 = r1267861 / r1267889;
double r1267891 = r1267873 * r1267890;
double r1267892 = r1267871 ? r1267880 : r1267891;
return r1267892;
}



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)))) < 1.0Initial program 11.0
rmApplied div-inv11.1
Applied associate-*l*11.2
Simplified11.1
rmApplied add-cube-cbrt11.2
if 1.0 < (/ (sin ky) (sqrt (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0)))) Initial program 63.3
Taylor expanded around 0 27.0
Simplified27.0
Final simplification11.6
herbie shell --seed 2019179
(FPCore (kx ky th)
:name "Toniolo and Linder, Equation (3b), real"
(* (/ (sin ky) (sqrt (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0)))) (sin th)))