\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{\sqrt[3]{\sin ky} \cdot \sqrt[3]{\sin ky}}{\sqrt[3]{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sqrt[3]{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}} \cdot \left(\frac{\sqrt[3]{\sin ky}}{\sqrt[3]{\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 r34606 = ky;
double r34607 = sin(r34606);
double r34608 = kx;
double r34609 = sin(r34608);
double r34610 = 2.0;
double r34611 = pow(r34609, r34610);
double r34612 = pow(r34607, r34610);
double r34613 = r34611 + r34612;
double r34614 = sqrt(r34613);
double r34615 = r34607 / r34614;
double r34616 = th;
double r34617 = sin(r34616);
double r34618 = r34615 * r34617;
return r34618;
}
double f(double kx, double ky, double th) {
double r34619 = ky;
double r34620 = sin(r34619);
double r34621 = kx;
double r34622 = sin(r34621);
double r34623 = 2.0;
double r34624 = pow(r34622, r34623);
double r34625 = pow(r34620, r34623);
double r34626 = r34624 + r34625;
double r34627 = sqrt(r34626);
double r34628 = r34620 / r34627;
double r34629 = 1.0;
bool r34630 = r34628 <= r34629;
double r34631 = cbrt(r34620);
double r34632 = r34631 * r34631;
double r34633 = cbrt(r34627);
double r34634 = r34633 * r34633;
double r34635 = r34632 / r34634;
double r34636 = r34631 / r34633;
double r34637 = th;
double r34638 = sin(r34637);
double r34639 = r34636 * r34638;
double r34640 = r34635 * r34639;
double r34641 = 0.08333333333333333;
double r34642 = 2.0;
double r34643 = pow(r34621, r34642);
double r34644 = r34643 * r34619;
double r34645 = r34641 * r34644;
double r34646 = r34619 + r34645;
double r34647 = 0.16666666666666666;
double r34648 = 3.0;
double r34649 = pow(r34619, r34648);
double r34650 = r34647 * r34649;
double r34651 = r34646 - r34650;
double r34652 = r34620 / r34651;
double r34653 = r34652 * r34638;
double r34654 = r34630 ? r34640 : r34653;
return r34654;
}



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.1
rmApplied add-cube-cbrt11.9
Applied add-cube-cbrt11.5
Applied times-frac11.5
Applied associate-*l*11.5
if 1.0 < (/ (sin ky) (sqrt (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0)))) Initial program 63.1
Taylor expanded around 0 30.0
Final simplification12.1
herbie shell --seed 2019304
(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)))