\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\frac{\sin ky}{\sqrt{{\left(\sqrt[3]{\sin kx} \cdot \sqrt[3]{\sin kx}\right)}^{2} \cdot {\left(\sqrt[3]{\sin kx}\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin thdouble f(double kx, double ky, double th) {
double r32594 = ky;
double r32595 = sin(r32594);
double r32596 = kx;
double r32597 = sin(r32596);
double r32598 = 2.0;
double r32599 = pow(r32597, r32598);
double r32600 = pow(r32595, r32598);
double r32601 = r32599 + r32600;
double r32602 = sqrt(r32601);
double r32603 = r32595 / r32602;
double r32604 = th;
double r32605 = sin(r32604);
double r32606 = r32603 * r32605;
return r32606;
}
double f(double kx, double ky, double th) {
double r32607 = ky;
double r32608 = sin(r32607);
double r32609 = kx;
double r32610 = sin(r32609);
double r32611 = cbrt(r32610);
double r32612 = r32611 * r32611;
double r32613 = 2.0;
double r32614 = pow(r32612, r32613);
double r32615 = pow(r32611, r32613);
double r32616 = r32614 * r32615;
double r32617 = pow(r32608, r32613);
double r32618 = r32616 + r32617;
double r32619 = sqrt(r32618);
double r32620 = r32608 / r32619;
double r32621 = th;
double r32622 = sin(r32621);
double r32623 = r32620 * r32622;
return r32623;
}



Bits error versus kx



Bits error versus ky



Bits error versus th
Results
Initial program 12.6
rmApplied add-cube-cbrt12.9
Applied unpow-prod-down12.9
Final simplification12.9
herbie shell --seed 2019326
(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)))