Average Error: 12.5 → 8.6
Time: 33.6s
Precision: 64
\[\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
\[\frac{\sin ky}{\mathsf{hypot}\left(\sin kx, \sin ky\right)} \cdot \sin th\]
\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th
\frac{\sin ky}{\mathsf{hypot}\left(\sin kx, \sin ky\right)} \cdot \sin th
double f(double kx, double ky, double th) {
        double r40471 = ky;
        double r40472 = sin(r40471);
        double r40473 = kx;
        double r40474 = sin(r40473);
        double r40475 = 2.0;
        double r40476 = pow(r40474, r40475);
        double r40477 = pow(r40472, r40475);
        double r40478 = r40476 + r40477;
        double r40479 = sqrt(r40478);
        double r40480 = r40472 / r40479;
        double r40481 = th;
        double r40482 = sin(r40481);
        double r40483 = r40480 * r40482;
        return r40483;
}

double f(double kx, double ky, double th) {
        double r40484 = ky;
        double r40485 = sin(r40484);
        double r40486 = kx;
        double r40487 = sin(r40486);
        double r40488 = hypot(r40487, r40485);
        double r40489 = r40485 / r40488;
        double r40490 = th;
        double r40491 = sin(r40490);
        double r40492 = r40489 * r40491;
        return r40492;
}

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. Taylor expanded around inf 12.5

    \[\leadsto \frac{\sin ky}{\color{blue}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}} \cdot \sin th\]
  3. Simplified8.6

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

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

Reproduce

herbie shell --seed 2019198 +o rules:numerics
(FPCore (kx ky th)
  :name "Toniolo and Linder, Equation (3b), real"
  (* (/ (sin ky) (sqrt (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0)))) (sin th)))