\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:\\
\;\;\;\;\left(\sqrt[3]{\frac{\sin ky}{\left|\sqrt[3]{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right| \cdot \sqrt{\sqrt[3]{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}}} \cdot \sqrt[3]{\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}}\right) \cdot \left(\sqrt[3]{\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}} \cdot \sin th\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\sin ky}{\left(ky + \frac{1}{12} \cdot \left({kx}^{2} \cdot ky\right)\right) - \frac{1}{6} \cdot {ky}^{3}} \cdot \sin th\\
\end{array}double f(double kx, double ky, double th) {
double r39578 = ky;
double r39579 = sin(r39578);
double r39580 = kx;
double r39581 = sin(r39580);
double r39582 = 2.0;
double r39583 = pow(r39581, r39582);
double r39584 = pow(r39579, r39582);
double r39585 = r39583 + r39584;
double r39586 = sqrt(r39585);
double r39587 = r39579 / r39586;
double r39588 = th;
double r39589 = sin(r39588);
double r39590 = r39587 * r39589;
return r39590;
}
double f(double kx, double ky, double th) {
double r39591 = ky;
double r39592 = sin(r39591);
double r39593 = kx;
double r39594 = sin(r39593);
double r39595 = 2.0;
double r39596 = pow(r39594, r39595);
double r39597 = pow(r39592, r39595);
double r39598 = r39596 + r39597;
double r39599 = sqrt(r39598);
double r39600 = r39592 / r39599;
double r39601 = 1.0;
bool r39602 = r39600 <= r39601;
double r39603 = cbrt(r39598);
double r39604 = fabs(r39603);
double r39605 = sqrt(r39603);
double r39606 = r39604 * r39605;
double r39607 = r39592 / r39606;
double r39608 = cbrt(r39607);
double r39609 = cbrt(r39600);
double r39610 = r39608 * r39609;
double r39611 = th;
double r39612 = sin(r39611);
double r39613 = r39609 * r39612;
double r39614 = r39610 * r39613;
double r39615 = 0.08333333333333333;
double r39616 = 2.0;
double r39617 = pow(r39593, r39616);
double r39618 = r39617 * r39591;
double r39619 = r39615 * r39618;
double r39620 = r39591 + r39619;
double r39621 = 0.16666666666666666;
double r39622 = 3.0;
double r39623 = pow(r39591, r39622);
double r39624 = r39621 * r39623;
double r39625 = r39620 - r39624;
double r39626 = r39592 / r39625;
double r39627 = r39626 * r39612;
double r39628 = r39602 ? r39614 : r39627;
return r39628;
}



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 10.8
rmApplied add-cube-cbrt11.1
Applied associate-*l*11.1
rmApplied add-cube-cbrt11.1
Applied sqrt-prod11.1
Simplified11.1
if 1.0 < (/ (sin ky) (sqrt (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0)))) Initial program 63.2
Taylor expanded around 0 29.7
Final simplification11.6
herbie shell --seed 2020021
(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)))