Average Error: 12.7 → 9.1
Time: 10.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 ky, \sin kx\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 ky, \sin kx\right)} \cdot \sin th
double f(double kx, double ky, double th) {
        double r43525 = ky;
        double r43526 = sin(r43525);
        double r43527 = kx;
        double r43528 = sin(r43527);
        double r43529 = 2.0;
        double r43530 = pow(r43528, r43529);
        double r43531 = pow(r43526, r43529);
        double r43532 = r43530 + r43531;
        double r43533 = sqrt(r43532);
        double r43534 = r43526 / r43533;
        double r43535 = th;
        double r43536 = sin(r43535);
        double r43537 = r43534 * r43536;
        return r43537;
}

double f(double kx, double ky, double th) {
        double r43538 = ky;
        double r43539 = sin(r43538);
        double r43540 = kx;
        double r43541 = sin(r43540);
        double r43542 = hypot(r43539, r43541);
        double r43543 = r43539 / r43542;
        double r43544 = th;
        double r43545 = sin(r43544);
        double r43546 = r43543 * r43545;
        return r43546;
}

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

    \[\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
  2. Taylor expanded around inf 12.7

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

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

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

Reproduce

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