Average Error: 12.5 → 8.6
Time: 35.8s
Precision: 64
\[\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
\[\frac{\sin th}{\frac{\mathsf{hypot}\left(\sin ky, \sin kx\right)}{\sin ky}}\]
\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th
\frac{\sin th}{\frac{\mathsf{hypot}\left(\sin ky, \sin kx\right)}{\sin ky}}
double f(double kx, double ky, double th) {
        double r1085833 = ky;
        double r1085834 = sin(r1085833);
        double r1085835 = kx;
        double r1085836 = sin(r1085835);
        double r1085837 = 2.0;
        double r1085838 = pow(r1085836, r1085837);
        double r1085839 = pow(r1085834, r1085837);
        double r1085840 = r1085838 + r1085839;
        double r1085841 = sqrt(r1085840);
        double r1085842 = r1085834 / r1085841;
        double r1085843 = th;
        double r1085844 = sin(r1085843);
        double r1085845 = r1085842 * r1085844;
        return r1085845;
}

double f(double kx, double ky, double th) {
        double r1085846 = th;
        double r1085847 = sin(r1085846);
        double r1085848 = ky;
        double r1085849 = sin(r1085848);
        double r1085850 = kx;
        double r1085851 = sin(r1085850);
        double r1085852 = hypot(r1085849, r1085851);
        double r1085853 = r1085852 / r1085849;
        double r1085854 = r1085847 / r1085853;
        return r1085854;
}

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. Simplified8.6

    \[\leadsto \color{blue}{\sin th \cdot \frac{\sin ky}{\mathsf{hypot}\left(\sin ky, \sin kx\right)}}\]
  3. Using strategy rm
  4. Applied clear-num8.6

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

    \[\leadsto \color{blue}{\frac{\sin th}{\frac{\mathsf{hypot}\left(\sin ky, \sin kx\right)}{\sin ky}}}\]
  7. Final simplification8.6

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

Reproduce

herbie shell --seed 2019162 +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)))