\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\left(\left(\sqrt[3]{\frac{\sqrt[3]{\sin ky}}{\sqrt[3]{\mathsf{hypot}\left(\sin ky, \sin kx\right)}}} \cdot \sqrt[3]{\frac{\sqrt[3]{\sin ky}}{\sqrt[3]{\mathsf{hypot}\left(\sin ky, \sin kx\right)}} \cdot \frac{\sqrt[3]{\sin ky}}{\sqrt[3]{\mathsf{hypot}\left(\sin ky, \sin kx\right)}}}\right) \cdot \sin th\right) \cdot \left(\sqrt[3]{\frac{\sin ky}{\mathsf{hypot}\left(\sin ky, \sin kx\right)}} \cdot \sqrt[3]{\frac{\sin ky}{\mathsf{hypot}\left(\sin ky, \sin kx\right)}}\right)double f(double kx, double ky, double th) {
double r1108186 = ky;
double r1108187 = sin(r1108186);
double r1108188 = kx;
double r1108189 = sin(r1108188);
double r1108190 = 2.0;
double r1108191 = pow(r1108189, r1108190);
double r1108192 = pow(r1108187, r1108190);
double r1108193 = r1108191 + r1108192;
double r1108194 = sqrt(r1108193);
double r1108195 = r1108187 / r1108194;
double r1108196 = th;
double r1108197 = sin(r1108196);
double r1108198 = r1108195 * r1108197;
return r1108198;
}
double f(double kx, double ky, double th) {
double r1108199 = ky;
double r1108200 = sin(r1108199);
double r1108201 = cbrt(r1108200);
double r1108202 = kx;
double r1108203 = sin(r1108202);
double r1108204 = hypot(r1108200, r1108203);
double r1108205 = cbrt(r1108204);
double r1108206 = r1108201 / r1108205;
double r1108207 = cbrt(r1108206);
double r1108208 = r1108206 * r1108206;
double r1108209 = cbrt(r1108208);
double r1108210 = r1108207 * r1108209;
double r1108211 = th;
double r1108212 = sin(r1108211);
double r1108213 = r1108210 * r1108212;
double r1108214 = r1108200 / r1108204;
double r1108215 = cbrt(r1108214);
double r1108216 = r1108215 * r1108215;
double r1108217 = r1108213 * r1108216;
return r1108217;
}



Bits error versus kx



Bits error versus ky



Bits error versus th
Results
Initial program 12.9
Taylor expanded around inf 12.9
Simplified9.3
rmApplied add-cube-cbrt9.7
Applied associate-*l*9.7
rmApplied add-cube-cbrt9.7
Applied add-cube-cbrt9.7
Applied times-frac9.7
Applied cbrt-prod9.7
Simplified9.7
Final simplification9.7
herbie shell --seed 2019200 +o rules:numerics
(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)))