\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\frac{1}{\frac{\frac{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}{\sin th}}{\sin ky}}double f(double kx, double ky, double th) {
double r237739 = ky;
double r237740 = sin(r237739);
double r237741 = kx;
double r237742 = sin(r237741);
double r237743 = 2.0;
double r237744 = pow(r237742, r237743);
double r237745 = pow(r237740, r237743);
double r237746 = r237744 + r237745;
double r237747 = sqrt(r237746);
double r237748 = r237740 / r237747;
double r237749 = th;
double r237750 = sin(r237749);
double r237751 = r237748 * r237750;
return r237751;
}
double f(double kx, double ky, double th) {
double r237752 = 1.0;
double r237753 = kx;
double r237754 = sin(r237753);
double r237755 = 2.0;
double r237756 = pow(r237754, r237755);
double r237757 = ky;
double r237758 = sin(r237757);
double r237759 = pow(r237758, r237755);
double r237760 = r237756 + r237759;
double r237761 = sqrt(r237760);
double r237762 = th;
double r237763 = sin(r237762);
double r237764 = r237761 / r237763;
double r237765 = r237764 / r237758;
double r237766 = r237752 / r237765;
return r237766;
}



Bits error versus kx



Bits error versus ky



Bits error versus th
Results
Initial program 12.1
rmApplied clear-num12.1
rmApplied div-inv12.2
Applied associate-/r*12.2
rmApplied *-un-lft-identity12.2
Applied unpow-prod-down12.2
Applied *-un-lft-identity12.2
Applied unpow-prod-down12.2
Applied distribute-lft-out12.2
Applied sqrt-prod12.2
Applied add-cube-cbrt12.2
Applied times-frac12.2
Applied associate-/l*12.2
rmApplied associate-/r/12.2
Applied associate-/r*12.2
Final simplification12.4
herbie shell --seed 2019303
(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)))