Average Error: 13.0 → 9.2
Time: 18.2s
Precision: 64
\[\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
\[\sin ky \cdot \frac{\sin th}{\mathsf{hypot}\left({\left(\sin kx\right)}^{\left(\frac{2}{2}\right)}, {\left(\sin ky\right)}^{\left(\frac{2}{2}\right)}\right)}\]
\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th
\sin ky \cdot \frac{\sin th}{\mathsf{hypot}\left({\left(\sin kx\right)}^{\left(\frac{2}{2}\right)}, {\left(\sin ky\right)}^{\left(\frac{2}{2}\right)}\right)}
double f(double kx, double ky, double th) {
        double r53399 = ky;
        double r53400 = sin(r53399);
        double r53401 = kx;
        double r53402 = sin(r53401);
        double r53403 = 2.0;
        double r53404 = pow(r53402, r53403);
        double r53405 = pow(r53400, r53403);
        double r53406 = r53404 + r53405;
        double r53407 = sqrt(r53406);
        double r53408 = r53400 / r53407;
        double r53409 = th;
        double r53410 = sin(r53409);
        double r53411 = r53408 * r53410;
        return r53411;
}

double f(double kx, double ky, double th) {
        double r53412 = ky;
        double r53413 = sin(r53412);
        double r53414 = th;
        double r53415 = sin(r53414);
        double r53416 = kx;
        double r53417 = sin(r53416);
        double r53418 = 2.0;
        double r53419 = 2.0;
        double r53420 = r53418 / r53419;
        double r53421 = pow(r53417, r53420);
        double r53422 = pow(r53413, r53420);
        double r53423 = hypot(r53421, r53422);
        double r53424 = r53415 / r53423;
        double r53425 = r53413 * r53424;
        return r53425;
}

Error

Bits error versus kx

Bits error versus ky

Bits error versus th

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 13.0

    \[\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
  2. Using strategy rm
  3. Applied sqr-pow13.0

    \[\leadsto \frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + \color{blue}{{\left(\sin ky\right)}^{\left(\frac{2}{2}\right)} \cdot {\left(\sin ky\right)}^{\left(\frac{2}{2}\right)}}}} \cdot \sin th\]
  4. Applied sqr-pow13.0

    \[\leadsto \frac{\sin ky}{\sqrt{\color{blue}{{\left(\sin kx\right)}^{\left(\frac{2}{2}\right)} \cdot {\left(\sin kx\right)}^{\left(\frac{2}{2}\right)}} + {\left(\sin ky\right)}^{\left(\frac{2}{2}\right)} \cdot {\left(\sin ky\right)}^{\left(\frac{2}{2}\right)}}} \cdot \sin th\]
  5. Applied hypot-def9.1

    \[\leadsto \frac{\sin ky}{\color{blue}{\mathsf{hypot}\left({\left(\sin kx\right)}^{\left(\frac{2}{2}\right)}, {\left(\sin ky\right)}^{\left(\frac{2}{2}\right)}\right)}} \cdot \sin th\]
  6. Using strategy rm
  7. Applied div-inv9.2

    \[\leadsto \color{blue}{\left(\sin ky \cdot \frac{1}{\mathsf{hypot}\left({\left(\sin kx\right)}^{\left(\frac{2}{2}\right)}, {\left(\sin ky\right)}^{\left(\frac{2}{2}\right)}\right)}\right)} \cdot \sin th\]
  8. Applied associate-*l*9.3

    \[\leadsto \color{blue}{\sin ky \cdot \left(\frac{1}{\mathsf{hypot}\left({\left(\sin kx\right)}^{\left(\frac{2}{2}\right)}, {\left(\sin ky\right)}^{\left(\frac{2}{2}\right)}\right)} \cdot \sin th\right)}\]
  9. Simplified9.2

    \[\leadsto \sin ky \cdot \color{blue}{\frac{\sin th}{\mathsf{hypot}\left({\left(\sin kx\right)}^{\left(\frac{2}{2}\right)}, {\left(\sin ky\right)}^{\left(\frac{2}{2}\right)}\right)}}\]
  10. Final simplification9.2

    \[\leadsto \sin ky \cdot \frac{\sin th}{\mathsf{hypot}\left({\left(\sin kx\right)}^{\left(\frac{2}{2}\right)}, {\left(\sin ky\right)}^{\left(\frac{2}{2}\right)}\right)}\]

Reproduce

herbie shell --seed 2020047 +o rules:numerics
(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)))