\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 r32601 = ky;
double r32602 = sin(r32601);
double r32603 = kx;
double r32604 = sin(r32603);
double r32605 = 2.0;
double r32606 = pow(r32604, r32605);
double r32607 = pow(r32602, r32605);
double r32608 = r32606 + r32607;
double r32609 = sqrt(r32608);
double r32610 = r32602 / r32609;
double r32611 = th;
double r32612 = sin(r32611);
double r32613 = r32610 * r32612;
return r32613;
}
double f(double kx, double ky, double th) {
double r32614 = ky;
double r32615 = sin(r32614);
double r32616 = kx;
double r32617 = sin(r32616);
double r32618 = cbrt(r32617);
double r32619 = r32618 * r32618;
double r32620 = 2.0;
double r32621 = pow(r32619, r32620);
double r32622 = pow(r32618, r32620);
double r32623 = r32621 * r32622;
double r32624 = pow(r32615, r32620);
double r32625 = r32623 + r32624;
double r32626 = sqrt(r32625);
double r32627 = r32615 / r32626;
double r32628 = th;
double r32629 = sin(r32628);
double r32630 = r32627 * r32629;
return r32630;
}



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)))