Average Error: 12.1 → 8.6
Time: 55.9s
Precision: 64
\[\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
\[\frac{\sin th}{\sqrt{\left(\sin kx\right)^2 + \left(\sin ky\right)^2}^*} \cdot \sin ky\]
double f(double kx, double ky, double th) {
        double r1367240 = ky;
        double r1367241 = sin(r1367240);
        double r1367242 = kx;
        double r1367243 = sin(r1367242);
        double r1367244 = 2.0;
        double r1367245 = pow(r1367243, r1367244);
        double r1367246 = pow(r1367241, r1367244);
        double r1367247 = r1367245 + r1367246;
        double r1367248 = sqrt(r1367247);
        double r1367249 = r1367241 / r1367248;
        double r1367250 = th;
        double r1367251 = sin(r1367250);
        double r1367252 = r1367249 * r1367251;
        return r1367252;
}

double f(double kx, double ky, double th) {
        double r1367253 = th;
        double r1367254 = sin(r1367253);
        double r1367255 = kx;
        double r1367256 = sin(r1367255);
        double r1367257 = ky;
        double r1367258 = sin(r1367257);
        double r1367259 = hypot(r1367256, r1367258);
        double r1367260 = r1367254 / r1367259;
        double r1367261 = r1367260 * r1367258;
        return r1367261;
}

\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th
\frac{\sin th}{\sqrt{\left(\sin kx\right)^2 + \left(\sin ky\right)^2}^*} \cdot \sin ky

Error

Bits error versus kx

Bits error versus ky

Bits error versus th

Derivation

  1. Initial program 12.1

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

    \[\leadsto \color{blue}{\sin th \cdot \frac{\sin ky}{\sqrt{\left(\sin kx\right)^2 + \left(\sin ky\right)^2}^*}}\]
  3. Using strategy rm
  4. Applied *-un-lft-identity8.5

    \[\leadsto \sin th \cdot \frac{\color{blue}{1 \cdot \sin ky}}{\sqrt{\left(\sin kx\right)^2 + \left(\sin ky\right)^2}^*}\]
  5. Applied associate-/l*8.6

    \[\leadsto \sin th \cdot \color{blue}{\frac{1}{\frac{\sqrt{\left(\sin kx\right)^2 + \left(\sin ky\right)^2}^*}{\sin ky}}}\]
  6. Using strategy rm
  7. Applied un-div-inv8.5

    \[\leadsto \color{blue}{\frac{\sin th}{\frac{\sqrt{\left(\sin kx\right)^2 + \left(\sin ky\right)^2}^*}{\sin ky}}}\]
  8. Using strategy rm
  9. Applied associate-/r/8.6

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

    \[\leadsto \frac{\sin th}{\sqrt{\left(\sin kx\right)^2 + \left(\sin ky\right)^2}^*} \cdot \sin ky\]

Reproduce

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