Average Error: 12.2 → 8.6
Time: 26.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(\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 r436425 = ky;
        double r436426 = sin(r436425);
        double r436427 = kx;
        double r436428 = sin(r436427);
        double r436429 = 2.0;
        double r436430 = pow(r436428, r436429);
        double r436431 = pow(r436426, r436429);
        double r436432 = r436430 + r436431;
        double r436433 = sqrt(r436432);
        double r436434 = r436426 / r436433;
        double r436435 = th;
        double r436436 = sin(r436435);
        double r436437 = r436434 * r436436;
        return r436437;
}

double f(double kx, double ky, double th) {
        double r436438 = th;
        double r436439 = sin(r436438);
        double r436440 = ky;
        double r436441 = sin(r436440);
        double r436442 = kx;
        double r436443 = sin(r436442);
        double r436444 = hypot(r436441, r436443);
        double r436445 = r436441 / r436444;
        double r436446 = r436439 * r436445;
        return r436446;
}

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

    \[\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 *-un-lft-identity8.6

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

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

Reproduce

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