\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.9999999999936646233322790067177265882492:\\
\;\;\;\;\sin th \cdot \left(\sqrt{\frac{1}{\sin ky \cdot \sin ky + \sin kx \cdot \sin kx}} \cdot \sin ky\right)\\
\mathbf{else}:\\
\;\;\;\;\left(1 - \left(kx \cdot kx\right) \cdot \frac{1}{6}\right) \cdot \sin th\\
\end{array}double f(double kx, double ky, double th) {
double r1276571 = ky;
double r1276572 = sin(r1276571);
double r1276573 = kx;
double r1276574 = sin(r1276573);
double r1276575 = 2.0;
double r1276576 = pow(r1276574, r1276575);
double r1276577 = pow(r1276572, r1276575);
double r1276578 = r1276576 + r1276577;
double r1276579 = sqrt(r1276578);
double r1276580 = r1276572 / r1276579;
double r1276581 = th;
double r1276582 = sin(r1276581);
double r1276583 = r1276580 * r1276582;
return r1276583;
}
double f(double kx, double ky, double th) {
double r1276584 = ky;
double r1276585 = sin(r1276584);
double r1276586 = kx;
double r1276587 = sin(r1276586);
double r1276588 = 2.0;
double r1276589 = pow(r1276587, r1276588);
double r1276590 = pow(r1276585, r1276588);
double r1276591 = r1276589 + r1276590;
double r1276592 = sqrt(r1276591);
double r1276593 = r1276585 / r1276592;
double r1276594 = 0.9999999999936646;
bool r1276595 = r1276593 <= r1276594;
double r1276596 = th;
double r1276597 = sin(r1276596);
double r1276598 = 1.0;
double r1276599 = r1276585 * r1276585;
double r1276600 = r1276587 * r1276587;
double r1276601 = r1276599 + r1276600;
double r1276602 = r1276598 / r1276601;
double r1276603 = sqrt(r1276602);
double r1276604 = r1276603 * r1276585;
double r1276605 = r1276597 * r1276604;
double r1276606 = r1276586 * r1276586;
double r1276607 = 0.16666666666666666;
double r1276608 = r1276606 * r1276607;
double r1276609 = r1276598 - r1276608;
double r1276610 = r1276609 * r1276597;
double r1276611 = r1276595 ? r1276605 : r1276610;
return r1276611;
}



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.9999999999936646Initial program 13.2
rmApplied clear-num13.2
rmApplied div-inv13.3
Applied associate-/r*13.2
Taylor expanded around inf 13.4
Simplified13.4
if 0.9999999999936646 < (/ (sin ky) (sqrt (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0)))) Initial program 8.9
rmApplied clear-num8.9
rmApplied div-inv9.1
Applied associate-/r*8.9
Taylor expanded around 0 4.1
Simplified4.1
Final simplification11.6
herbie shell --seed 2019174
(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)))