Average Error: 12.5 → 8.9
Time: 11.1s
Precision: 64
\[\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
\[\sin ky \cdot \frac{1 \cdot \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{1 \cdot \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 r43779 = ky;
        double r43780 = sin(r43779);
        double r43781 = kx;
        double r43782 = sin(r43781);
        double r43783 = 2.0;
        double r43784 = pow(r43782, r43783);
        double r43785 = pow(r43780, r43783);
        double r43786 = r43784 + r43785;
        double r43787 = sqrt(r43786);
        double r43788 = r43780 / r43787;
        double r43789 = th;
        double r43790 = sin(r43789);
        double r43791 = r43788 * r43790;
        return r43791;
}

double f(double kx, double ky, double th) {
        double r43792 = ky;
        double r43793 = sin(r43792);
        double r43794 = 1.0;
        double r43795 = th;
        double r43796 = sin(r43795);
        double r43797 = r43794 * r43796;
        double r43798 = kx;
        double r43799 = sin(r43798);
        double r43800 = 2.0;
        double r43801 = 2.0;
        double r43802 = r43800 / r43801;
        double r43803 = pow(r43799, r43802);
        double r43804 = pow(r43793, r43802);
        double r43805 = hypot(r43803, r43804);
        double r43806 = r43797 / r43805;
        double r43807 = r43793 * r43806;
        return r43807;
}

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 12.5

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

    \[\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-pow12.5

    \[\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-def8.8

    \[\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 pow18.8

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

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

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

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

    \[\leadsto \sin ky \cdot \frac{1 \cdot \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 2019353 +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)))