\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\frac{\sin ky}{\sqrt{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}} \cdot \frac{\frac{\sin th}{\sqrt{\sqrt{\sqrt[3]{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}} \cdot \sqrt[3]{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}}}}{\sqrt{\sqrt{\sqrt[3]{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}}}double f(double kx, double ky, double th) {
double r44991 = ky;
double r44992 = sin(r44991);
double r44993 = kx;
double r44994 = sin(r44993);
double r44995 = 2.0;
double r44996 = pow(r44994, r44995);
double r44997 = pow(r44992, r44995);
double r44998 = r44996 + r44997;
double r44999 = sqrt(r44998);
double r45000 = r44992 / r44999;
double r45001 = th;
double r45002 = sin(r45001);
double r45003 = r45000 * r45002;
return r45003;
}
double f(double kx, double ky, double th) {
double r45004 = ky;
double r45005 = sin(r45004);
double r45006 = kx;
double r45007 = sin(r45006);
double r45008 = 2.0;
double r45009 = pow(r45007, r45008);
double r45010 = pow(r45005, r45008);
double r45011 = r45009 + r45010;
double r45012 = sqrt(r45011);
double r45013 = sqrt(r45012);
double r45014 = r45005 / r45013;
double r45015 = th;
double r45016 = sin(r45015);
double r45017 = cbrt(r45011);
double r45018 = r45017 * r45017;
double r45019 = sqrt(r45018);
double r45020 = sqrt(r45019);
double r45021 = r45016 / r45020;
double r45022 = sqrt(r45017);
double r45023 = sqrt(r45022);
double r45024 = r45021 / r45023;
double r45025 = r45014 * r45024;
return r45025;
}



Bits error versus kx



Bits error versus ky



Bits error versus th
Results
Initial program 12.6
rmApplied div-inv12.7
Applied associate-*l*12.7
Simplified12.6
rmApplied add-sqr-sqrt12.6
Applied sqrt-prod12.9
Applied *-un-lft-identity12.9
Applied times-frac12.9
Applied associate-*r*12.9
Simplified12.8
rmApplied add-cube-cbrt12.9
Applied sqrt-prod12.9
Applied sqrt-prod12.9
Applied associate-/r*13.0
Final simplification13.0
herbie shell --seed 2020089
(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)))