Average Error: 12.7 → 9.3
Time: 36.0s
Precision: 64
\[\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
\[\left(\sin ky \cdot \frac{1}{\sqrt{\mathsf{hypot}\left(\sin kx, \sin ky\right)}}\right) \cdot \frac{\sin th}{\sqrt{\mathsf{hypot}\left(\sin kx, \sin ky\right)}}\]
\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th
\left(\sin ky \cdot \frac{1}{\sqrt{\mathsf{hypot}\left(\sin kx, \sin ky\right)}}\right) \cdot \frac{\sin th}{\sqrt{\mathsf{hypot}\left(\sin kx, \sin ky\right)}}
double f(double kx, double ky, double th) {
        double r652014 = ky;
        double r652015 = sin(r652014);
        double r652016 = kx;
        double r652017 = sin(r652016);
        double r652018 = 2.0;
        double r652019 = pow(r652017, r652018);
        double r652020 = pow(r652015, r652018);
        double r652021 = r652019 + r652020;
        double r652022 = sqrt(r652021);
        double r652023 = r652015 / r652022;
        double r652024 = th;
        double r652025 = sin(r652024);
        double r652026 = r652023 * r652025;
        return r652026;
}

double f(double kx, double ky, double th) {
        double r652027 = ky;
        double r652028 = sin(r652027);
        double r652029 = 1.0;
        double r652030 = kx;
        double r652031 = sin(r652030);
        double r652032 = hypot(r652031, r652028);
        double r652033 = sqrt(r652032);
        double r652034 = r652029 / r652033;
        double r652035 = r652028 * r652034;
        double r652036 = th;
        double r652037 = sin(r652036);
        double r652038 = r652037 / r652033;
        double r652039 = r652035 * r652038;
        return r652039;
}

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

    \[\leadsto \color{blue}{\sin th \cdot \frac{\sin ky}{\mathsf{hypot}\left(\sin kx, \sin ky\right)}}\]
  3. Taylor expanded around -inf 12.7

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

    \[\leadsto \sin th \cdot \frac{\sin ky}{\color{blue}{\mathsf{hypot}\left(\sin kx, \sin ky\right)}}\]
  5. Using strategy rm
  6. Applied add-sqr-sqrt9.3

    \[\leadsto \sin th \cdot \frac{\sin ky}{\color{blue}{\sqrt{\mathsf{hypot}\left(\sin kx, \sin ky\right)} \cdot \sqrt{\mathsf{hypot}\left(\sin kx, \sin ky\right)}}}\]
  7. Applied *-un-lft-identity9.3

    \[\leadsto \sin th \cdot \frac{\color{blue}{1 \cdot \sin ky}}{\sqrt{\mathsf{hypot}\left(\sin kx, \sin ky\right)} \cdot \sqrt{\mathsf{hypot}\left(\sin kx, \sin ky\right)}}\]
  8. Applied times-frac9.3

    \[\leadsto \sin th \cdot \color{blue}{\left(\frac{1}{\sqrt{\mathsf{hypot}\left(\sin kx, \sin ky\right)}} \cdot \frac{\sin ky}{\sqrt{\mathsf{hypot}\left(\sin kx, \sin ky\right)}}\right)}\]
  9. Using strategy rm
  10. Applied associate-*r*9.3

    \[\leadsto \color{blue}{\left(\sin th \cdot \frac{1}{\sqrt{\mathsf{hypot}\left(\sin kx, \sin ky\right)}}\right) \cdot \frac{\sin ky}{\sqrt{\mathsf{hypot}\left(\sin kx, \sin ky\right)}}}\]
  11. Simplified9.3

    \[\leadsto \color{blue}{\frac{\sin th}{\sqrt{\mathsf{hypot}\left(\sin kx, \sin ky\right)}}} \cdot \frac{\sin ky}{\sqrt{\mathsf{hypot}\left(\sin kx, \sin ky\right)}}\]
  12. Using strategy rm
  13. Applied div-inv9.3

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

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

Reproduce

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