\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\left(\sin ky \cdot \frac{1}{\sqrt{\mathsf{hypot}\left(\sin kx, \sin ky\right)}}\right) \cdot \frac{\sin th}{\sqrt{\mathsf{hypot}\left(\sin kx, \sin ky\right)}}double f(double kx, double ky, double th) {
double r652014 = ky;
double r652015 = sin(r652014);
double r652016 = kx;
double r652017 = sin(r652016);
double r652018 = 2.0;
double r652019 = pow(r652017, r652018);
double r652020 = pow(r652015, r652018);
double r652021 = r652019 + r652020;
double r652022 = sqrt(r652021);
double r652023 = r652015 / r652022;
double r652024 = th;
double r652025 = sin(r652024);
double r652026 = r652023 * r652025;
return r652026;
}
double f(double kx, double ky, double th) {
double r652027 = ky;
double r652028 = sin(r652027);
double r652029 = 1.0;
double r652030 = kx;
double r652031 = sin(r652030);
double r652032 = hypot(r652031, r652028);
double r652033 = sqrt(r652032);
double r652034 = r652029 / r652033;
double r652035 = r652028 * r652034;
double r652036 = th;
double r652037 = sin(r652036);
double r652038 = r652037 / r652033;
double r652039 = r652035 * r652038;
return r652039;
}



Bits error versus kx



Bits error versus ky



Bits error versus th
Results
Initial program 12.7
Simplified9.0
Taylor expanded around -inf 12.7
Simplified9.0
rmApplied add-sqr-sqrt9.3
Applied *-un-lft-identity9.3
Applied times-frac9.3
rmApplied associate-*r*9.3
Simplified9.3
rmApplied div-inv9.3
Final simplification9.3
herbie shell --seed 2019135 +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)))