\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\left(\frac{1}{\sqrt{\sqrt{\sin ky \cdot \sin ky + \sin kx \cdot \sin kx}}} \cdot \sin ky\right) \cdot \frac{\sin th}{\sqrt{\sqrt{\sin ky \cdot \sin ky + \sin kx \cdot \sin kx}}}double f(double kx, double ky, double th) {
double r845616 = ky;
double r845617 = sin(r845616);
double r845618 = kx;
double r845619 = sin(r845618);
double r845620 = 2.0;
double r845621 = pow(r845619, r845620);
double r845622 = pow(r845617, r845620);
double r845623 = r845621 + r845622;
double r845624 = sqrt(r845623);
double r845625 = r845617 / r845624;
double r845626 = th;
double r845627 = sin(r845626);
double r845628 = r845625 * r845627;
return r845628;
}
double f(double kx, double ky, double th) {
double r845629 = 1.0;
double r845630 = ky;
double r845631 = sin(r845630);
double r845632 = r845631 * r845631;
double r845633 = kx;
double r845634 = sin(r845633);
double r845635 = r845634 * r845634;
double r845636 = r845632 + r845635;
double r845637 = sqrt(r845636);
double r845638 = sqrt(r845637);
double r845639 = r845629 / r845638;
double r845640 = r845639 * r845631;
double r845641 = th;
double r845642 = sin(r845641);
double r845643 = r845642 / r845638;
double r845644 = r845640 * r845643;
return r845644;
}



Bits error versus kx



Bits error versus ky



Bits error versus th
Results
Initial program 12.4
Simplified12.4
rmApplied add-sqr-sqrt12.6
Applied *-un-lft-identity12.6
Applied times-frac12.7
Applied associate-*r*12.7
Simplified12.6
rmApplied div-inv12.7
Final simplification12.7
herbie shell --seed 2019143
(FPCore (kx ky th)
:name "Toniolo and Linder, Equation (3b), real"
(* (/ (sin ky) (sqrt (+ (pow (sin kx) 2) (pow (sin ky) 2)))) (sin th)))