Average Error: 12.6 → 8.9
Time: 31.4s
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 r1108282 = ky;
        double r1108283 = sin(r1108282);
        double r1108284 = kx;
        double r1108285 = sin(r1108284);
        double r1108286 = 2.0;
        double r1108287 = pow(r1108285, r1108286);
        double r1108288 = pow(r1108283, r1108286);
        double r1108289 = r1108287 + r1108288;
        double r1108290 = sqrt(r1108289);
        double r1108291 = r1108283 / r1108290;
        double r1108292 = th;
        double r1108293 = sin(r1108292);
        double r1108294 = r1108291 * r1108293;
        return r1108294;
}

double f(double kx, double ky, double th) {
        double r1108295 = th;
        double r1108296 = sin(r1108295);
        double r1108297 = ky;
        double r1108298 = sin(r1108297);
        double r1108299 = kx;
        double r1108300 = sin(r1108299);
        double r1108301 = hypot(r1108298, r1108300);
        double r1108302 = r1108298 / r1108301;
        double r1108303 = r1108296 * r1108302;
        return r1108303;
}

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

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

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

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

Reproduce

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