\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\left(\sin th \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)\right) \cdot \left(\sqrt[3]{\sqrt[3]{\frac{\sin ky}{\mathsf{hypot}\left(\sin ky, \sin kx\right)}}} \cdot \left(\sqrt[3]{\sqrt[3]{\frac{\sin ky}{\mathsf{hypot}\left(\sin ky, \sin kx\right)}}} \cdot \sqrt[3]{\sqrt[3]{\frac{\sin ky}{\mathsf{hypot}\left(\sin ky, \sin kx\right)}}}\right)\right)double f(double kx, double ky, double th) {
double r848586 = ky;
double r848587 = sin(r848586);
double r848588 = kx;
double r848589 = sin(r848588);
double r848590 = 2.0;
double r848591 = pow(r848589, r848590);
double r848592 = pow(r848587, r848590);
double r848593 = r848591 + r848592;
double r848594 = sqrt(r848593);
double r848595 = r848587 / r848594;
double r848596 = th;
double r848597 = sin(r848596);
double r848598 = r848595 * r848597;
return r848598;
}
double f(double kx, double ky, double th) {
double r848599 = th;
double r848600 = sin(r848599);
double r848601 = ky;
double r848602 = sin(r848601);
double r848603 = kx;
double r848604 = sin(r848603);
double r848605 = hypot(r848602, r848604);
double r848606 = r848602 / r848605;
double r848607 = cbrt(r848606);
double r848608 = r848607 * r848607;
double r848609 = r848600 * r848608;
double r848610 = cbrt(r848607);
double r848611 = r848610 * r848610;
double r848612 = r848610 * r848611;
double r848613 = r848609 * r848612;
return r848613;
}



Bits error versus kx



Bits error versus ky



Bits error versus th
Results
Initial program 12.4
Simplified9.0
rmApplied add-cube-cbrt9.4
Applied associate-*r*9.4
rmApplied add-cube-cbrt9.5
Final simplification9.5
herbie shell --seed 2019152 +o rules:numerics
(FPCore (kx ky th)
:name "Toniolo and Linder, Equation (3b), real"
(* (/ (sin ky) (sqrt (+ (pow (sin kx) 2) (pow (sin ky) 2)))) (sin th)))