Average Error: 12.5 → 8.8
Time: 36.6s
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(\sin ky, \sin kx\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(\sin ky, \sin kx\right)}
double f(double kx, double ky, double th) {
        double r1071396 = ky;
        double r1071397 = sin(r1071396);
        double r1071398 = kx;
        double r1071399 = sin(r1071398);
        double r1071400 = 2.0;
        double r1071401 = pow(r1071399, r1071400);
        double r1071402 = pow(r1071397, r1071400);
        double r1071403 = r1071401 + r1071402;
        double r1071404 = sqrt(r1071403);
        double r1071405 = r1071397 / r1071404;
        double r1071406 = th;
        double r1071407 = sin(r1071406);
        double r1071408 = r1071405 * r1071407;
        return r1071408;
}

double f(double kx, double ky, double th) {
        double r1071409 = th;
        double r1071410 = sin(r1071409);
        double r1071411 = ky;
        double r1071412 = sin(r1071411);
        double r1071413 = kx;
        double r1071414 = sin(r1071413);
        double r1071415 = hypot(r1071412, r1071414);
        double r1071416 = r1071412 / r1071415;
        double r1071417 = r1071410 * r1071416;
        return r1071417;
}

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

    \[\leadsto \color{blue}{\sin th \cdot \frac{\sin ky}{\mathsf{hypot}\left(\sin ky, \sin kx\right)}}\]
  3. Using strategy rm
  4. Applied *-un-lft-identity8.8

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

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

Reproduce

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