Average Error: 4.3 → 0.2
Time: 10.8s
Precision: 64
\[\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
\[\sin th \cdot \frac{\sin ky}{\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 th \cdot \frac{\sin ky}{\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 r41658 = ky;
        double r41659 = sin(r41658);
        double r41660 = kx;
        double r41661 = sin(r41660);
        double r41662 = 2.0;
        double r41663 = pow(r41661, r41662);
        double r41664 = pow(r41659, r41662);
        double r41665 = r41663 + r41664;
        double r41666 = sqrt(r41665);
        double r41667 = r41659 / r41666;
        double r41668 = th;
        double r41669 = sin(r41668);
        double r41670 = r41667 * r41669;
        return r41670;
}

double f(double kx, double ky, double th) {
        double r41671 = th;
        double r41672 = sin(r41671);
        double r41673 = ky;
        double r41674 = sin(r41673);
        double r41675 = kx;
        double r41676 = sin(r41675);
        double r41677 = 2.0;
        double r41678 = 2.0;
        double r41679 = r41677 / r41678;
        double r41680 = pow(r41676, r41679);
        double r41681 = pow(r41674, r41679);
        double r41682 = hypot(r41680, r41681);
        double r41683 = r41674 / r41682;
        double r41684 = r41672 * r41683;
        return r41684;
}

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 4.3

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

    \[\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-pow4.3

    \[\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-def0.2

    \[\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 *-commutative0.2

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

    \[\leadsto \sin th \cdot \frac{\sin ky}{\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 2020064 +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)))