Average Error: 11.9 → 8.4
Time: 46.3s
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(\left(\sin kx\right), \left(\sin ky\right)\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(\left(\sin kx\right), \left(\sin ky\right)\right)}
double f(double kx, double ky, double th) {
        double r1119271 = ky;
        double r1119272 = sin(r1119271);
        double r1119273 = kx;
        double r1119274 = sin(r1119273);
        double r1119275 = 2.0;
        double r1119276 = pow(r1119274, r1119275);
        double r1119277 = pow(r1119272, r1119275);
        double r1119278 = r1119276 + r1119277;
        double r1119279 = sqrt(r1119278);
        double r1119280 = r1119272 / r1119279;
        double r1119281 = th;
        double r1119282 = sin(r1119281);
        double r1119283 = r1119280 * r1119282;
        return r1119283;
}

double f(double kx, double ky, double th) {
        double r1119284 = th;
        double r1119285 = sin(r1119284);
        double r1119286 = ky;
        double r1119287 = sin(r1119286);
        double r1119288 = kx;
        double r1119289 = sin(r1119288);
        double r1119290 = hypot(r1119289, r1119287);
        double r1119291 = r1119287 / r1119290;
        double r1119292 = r1119285 * r1119291;
        return r1119292;
}

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 11.9

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

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

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

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

Reproduce

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