Average Error: 12.5 → 11.6
Time: 30.1s
Precision: 64
\[\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
\[\begin{array}{l} \mathbf{if}\;\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \le 1:\\ \;\;\;\;\sin ky \cdot \frac{\sin th}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}\\ \mathbf{else}:\\ \;\;\;\;\sin ky \cdot \frac{\sin th}{\left(ky + \frac{1}{12} \cdot \left({kx}^{2} \cdot ky\right)\right) - \frac{1}{6} \cdot {ky}^{3}}\\ \end{array}\]
\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th
\begin{array}{l}
\mathbf{if}\;\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \le 1:\\
\;\;\;\;\sin ky \cdot \frac{\sin th}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}\\

\mathbf{else}:\\
\;\;\;\;\sin ky \cdot \frac{\sin th}{\left(ky + \frac{1}{12} \cdot \left({kx}^{2} \cdot ky\right)\right) - \frac{1}{6} \cdot {ky}^{3}}\\

\end{array}
double f(double kx, double ky, double th) {
        double r34887 = ky;
        double r34888 = sin(r34887);
        double r34889 = kx;
        double r34890 = sin(r34889);
        double r34891 = 2.0;
        double r34892 = pow(r34890, r34891);
        double r34893 = pow(r34888, r34891);
        double r34894 = r34892 + r34893;
        double r34895 = sqrt(r34894);
        double r34896 = r34888 / r34895;
        double r34897 = th;
        double r34898 = sin(r34897);
        double r34899 = r34896 * r34898;
        return r34899;
}

double f(double kx, double ky, double th) {
        double r34900 = ky;
        double r34901 = sin(r34900);
        double r34902 = kx;
        double r34903 = sin(r34902);
        double r34904 = 2.0;
        double r34905 = pow(r34903, r34904);
        double r34906 = pow(r34901, r34904);
        double r34907 = r34905 + r34906;
        double r34908 = sqrt(r34907);
        double r34909 = r34901 / r34908;
        double r34910 = 1.0;
        bool r34911 = r34909 <= r34910;
        double r34912 = th;
        double r34913 = sin(r34912);
        double r34914 = r34913 / r34908;
        double r34915 = r34901 * r34914;
        double r34916 = 0.08333333333333333;
        double r34917 = 2.0;
        double r34918 = pow(r34902, r34917);
        double r34919 = r34918 * r34900;
        double r34920 = r34916 * r34919;
        double r34921 = r34900 + r34920;
        double r34922 = 0.16666666666666666;
        double r34923 = 3.0;
        double r34924 = pow(r34900, r34923);
        double r34925 = r34922 * r34924;
        double r34926 = r34921 - r34925;
        double r34927 = r34913 / r34926;
        double r34928 = r34901 * r34927;
        double r34929 = r34911 ? r34915 : r34928;
        return r34929;
}

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. Split input into 2 regimes
  2. if (/ (sin ky) (sqrt (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0)))) < 1.0

    1. Initial program 11.0

      \[\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
    2. Using strategy rm
    3. Applied div-inv11.1

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

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

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

    if 1.0 < (/ (sin ky) (sqrt (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0))))

    1. Initial program 63.1

      \[\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
    2. Using strategy rm
    3. Applied div-inv63.1

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

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

      \[\leadsto \sin ky \cdot \color{blue}{\frac{\sin th}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}}\]
    6. Taylor expanded around 0 31.0

      \[\leadsto \sin ky \cdot \frac{\sin th}{\color{blue}{\left(ky + \frac{1}{12} \cdot \left({kx}^{2} \cdot ky\right)\right) - \frac{1}{6} \cdot {ky}^{3}}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification11.6

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \le 1:\\ \;\;\;\;\sin ky \cdot \frac{\sin th}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}\\ \mathbf{else}:\\ \;\;\;\;\sin ky \cdot \frac{\sin th}{\left(ky + \frac{1}{12} \cdot \left({kx}^{2} \cdot ky\right)\right) - \frac{1}{6} \cdot {ky}^{3}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019235 
(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)))