Average Error: 12.6 → 8.8
Time: 39.6s
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 r669206 = ky;
        double r669207 = sin(r669206);
        double r669208 = kx;
        double r669209 = sin(r669208);
        double r669210 = 2.0;
        double r669211 = pow(r669209, r669210);
        double r669212 = pow(r669207, r669210);
        double r669213 = r669211 + r669212;
        double r669214 = sqrt(r669213);
        double r669215 = r669207 / r669214;
        double r669216 = th;
        double r669217 = sin(r669216);
        double r669218 = r669215 * r669217;
        return r669218;
}

double f(double kx, double ky, double th) {
        double r669219 = th;
        double r669220 = sin(r669219);
        double r669221 = ky;
        double r669222 = sin(r669221);
        double r669223 = kx;
        double r669224 = sin(r669223);
        double r669225 = hypot(r669222, r669224);
        double r669226 = r669225 / r669222;
        double r669227 = r669220 / r669226;
        return r669227;
}

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

    \[\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
  2. Simplified8.8

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

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

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

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

Reproduce

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