\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\left(\sqrt[3]{\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}} \cdot \sqrt[3]{\frac{\sin ky}{\left(\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}}}\right) \cdot \sqrt[3]{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}}}\right) \cdot \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 \sin th\right)double f(double kx, double ky, double th) {
double r37096 = ky;
double r37097 = sin(r37096);
double r37098 = kx;
double r37099 = sin(r37098);
double r37100 = 2.0;
double r37101 = pow(r37099, r37100);
double r37102 = pow(r37097, r37100);
double r37103 = r37101 + r37102;
double r37104 = sqrt(r37103);
double r37105 = r37097 / r37104;
double r37106 = th;
double r37107 = sin(r37106);
double r37108 = r37105 * r37107;
return r37108;
}
double f(double kx, double ky, double th) {
double r37109 = ky;
double r37110 = sin(r37109);
double r37111 = kx;
double r37112 = sin(r37111);
double r37113 = 2.0;
double r37114 = pow(r37112, r37113);
double r37115 = pow(r37110, r37113);
double r37116 = r37114 + r37115;
double r37117 = sqrt(r37116);
double r37118 = r37110 / r37117;
double r37119 = cbrt(r37118);
double r37120 = cbrt(r37117);
double r37121 = r37120 * r37120;
double r37122 = r37121 * r37120;
double r37123 = r37110 / r37122;
double r37124 = cbrt(r37123);
double r37125 = r37119 * r37124;
double r37126 = cbrt(r37116);
double r37127 = fabs(r37126);
double r37128 = sqrt(r37126);
double r37129 = r37127 * r37128;
double r37130 = r37110 / r37129;
double r37131 = cbrt(r37130);
double r37132 = th;
double r37133 = sin(r37132);
double r37134 = r37131 * r37133;
double r37135 = r37125 * r37134;
return r37135;
}



Bits error versus kx



Bits error versus ky



Bits error versus th
Results
Initial program 12.2
rmApplied add-cube-cbrt12.6
Applied associate-*l*12.6
rmApplied add-cube-cbrt12.6
rmApplied add-cube-cbrt12.6
Applied sqrt-prod12.6
Simplified12.6
Final simplification12.6
herbie shell --seed 2020056
(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)))