Average Error: 12.3 → 12.6
Time: 39.4s
Precision: 64
\[\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
\[\sin th \cdot \frac{1}{\sqrt{\sqrt{\sin kx \cdot \sin kx + \sin ky \cdot \sin ky}} \cdot \frac{\sqrt{\sqrt{\sin kx \cdot \sin kx + \sin ky \cdot \sin ky}}}{\sin ky}}\]
\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th
\sin th \cdot \frac{1}{\sqrt{\sqrt{\sin kx \cdot \sin kx + \sin ky \cdot \sin ky}} \cdot \frac{\sqrt{\sqrt{\sin kx \cdot \sin kx + \sin ky \cdot \sin ky}}}{\sin ky}}
double f(double kx, double ky, double th) {
        double r707895 = ky;
        double r707896 = sin(r707895);
        double r707897 = kx;
        double r707898 = sin(r707897);
        double r707899 = 2.0;
        double r707900 = pow(r707898, r707899);
        double r707901 = pow(r707896, r707899);
        double r707902 = r707900 + r707901;
        double r707903 = sqrt(r707902);
        double r707904 = r707896 / r707903;
        double r707905 = th;
        double r707906 = sin(r707905);
        double r707907 = r707904 * r707906;
        return r707907;
}

double f(double kx, double ky, double th) {
        double r707908 = th;
        double r707909 = sin(r707908);
        double r707910 = 1.0;
        double r707911 = kx;
        double r707912 = sin(r707911);
        double r707913 = r707912 * r707912;
        double r707914 = ky;
        double r707915 = sin(r707914);
        double r707916 = r707915 * r707915;
        double r707917 = r707913 + r707916;
        double r707918 = sqrt(r707917);
        double r707919 = sqrt(r707918);
        double r707920 = r707919 / r707915;
        double r707921 = r707919 * r707920;
        double r707922 = r707910 / r707921;
        double r707923 = r707909 * r707922;
        return r707923;
}

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

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

    \[\leadsto \color{blue}{\sin th \cdot \frac{\sin ky}{\sqrt{\sin kx \cdot \sin kx + \sin ky \cdot \sin ky}}}\]
  3. Using strategy rm
  4. Applied clear-num12.3

    \[\leadsto \sin th \cdot \color{blue}{\frac{1}{\frac{\sqrt{\sin kx \cdot \sin kx + \sin ky \cdot \sin ky}}{\sin ky}}}\]
  5. Using strategy rm
  6. Applied *-un-lft-identity12.3

    \[\leadsto \sin th \cdot \frac{1}{\frac{\sqrt{\sin kx \cdot \sin kx + \sin ky \cdot \sin ky}}{\color{blue}{1 \cdot \sin ky}}}\]
  7. Applied add-sqr-sqrt12.6

    \[\leadsto \sin th \cdot \frac{1}{\frac{\color{blue}{\sqrt{\sqrt{\sin kx \cdot \sin kx + \sin ky \cdot \sin ky}} \cdot \sqrt{\sqrt{\sin kx \cdot \sin kx + \sin ky \cdot \sin ky}}}}{1 \cdot \sin ky}}\]
  8. Applied times-frac12.6

    \[\leadsto \sin th \cdot \frac{1}{\color{blue}{\frac{\sqrt{\sqrt{\sin kx \cdot \sin kx + \sin ky \cdot \sin ky}}}{1} \cdot \frac{\sqrt{\sqrt{\sin kx \cdot \sin kx + \sin ky \cdot \sin ky}}}{\sin ky}}}\]
  9. Simplified12.6

    \[\leadsto \sin th \cdot \frac{1}{\color{blue}{\sqrt{\sqrt{\sin kx \cdot \sin kx + \sin ky \cdot \sin ky}}} \cdot \frac{\sqrt{\sqrt{\sin kx \cdot \sin kx + \sin ky \cdot \sin ky}}}{\sin ky}}\]
  10. Final simplification12.6

    \[\leadsto \sin th \cdot \frac{1}{\sqrt{\sqrt{\sin kx \cdot \sin kx + \sin ky \cdot \sin ky}} \cdot \frac{\sqrt{\sqrt{\sin kx \cdot \sin kx + \sin ky \cdot \sin ky}}}{\sin ky}}\]

Reproduce

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