Average Error: 12.4 → 11.6
Time: 36.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:\\ \;\;\;\;\frac{\sin th}{\sqrt{{\left(\sin ky\right)}^{2} + \left(\sqrt[3]{{\left(\sin kx\right)}^{2}} \cdot \sqrt[3]{{\left(\sin kx\right)}^{2}}\right) \cdot \sqrt[3]{{\left(\sin kx\right)}^{2}}}} \cdot \sin ky\\ \mathbf{else}:\\ \;\;\;\;\sin th \cdot \frac{\sin ky}{ky + \left(kx \cdot \left(kx \cdot \frac{1}{12}\right) - \frac{1}{6} \cdot \left(ky \cdot ky\right)\right) \cdot ky}\\ \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:\\
\;\;\;\;\frac{\sin th}{\sqrt{{\left(\sin ky\right)}^{2} + \left(\sqrt[3]{{\left(\sin kx\right)}^{2}} \cdot \sqrt[3]{{\left(\sin kx\right)}^{2}}\right) \cdot \sqrt[3]{{\left(\sin kx\right)}^{2}}}} \cdot \sin ky\\

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

\end{array}
double f(double kx, double ky, double th) {
        double r1267847 = ky;
        double r1267848 = sin(r1267847);
        double r1267849 = kx;
        double r1267850 = sin(r1267849);
        double r1267851 = 2.0;
        double r1267852 = pow(r1267850, r1267851);
        double r1267853 = pow(r1267848, r1267851);
        double r1267854 = r1267852 + r1267853;
        double r1267855 = sqrt(r1267854);
        double r1267856 = r1267848 / r1267855;
        double r1267857 = th;
        double r1267858 = sin(r1267857);
        double r1267859 = r1267856 * r1267858;
        return r1267859;
}

double f(double kx, double ky, double th) {
        double r1267860 = ky;
        double r1267861 = sin(r1267860);
        double r1267862 = kx;
        double r1267863 = sin(r1267862);
        double r1267864 = 2.0;
        double r1267865 = pow(r1267863, r1267864);
        double r1267866 = pow(r1267861, r1267864);
        double r1267867 = r1267865 + r1267866;
        double r1267868 = sqrt(r1267867);
        double r1267869 = r1267861 / r1267868;
        double r1267870 = 1.0;
        bool r1267871 = r1267869 <= r1267870;
        double r1267872 = th;
        double r1267873 = sin(r1267872);
        double r1267874 = cbrt(r1267865);
        double r1267875 = r1267874 * r1267874;
        double r1267876 = r1267875 * r1267874;
        double r1267877 = r1267866 + r1267876;
        double r1267878 = sqrt(r1267877);
        double r1267879 = r1267873 / r1267878;
        double r1267880 = r1267879 * r1267861;
        double r1267881 = 0.08333333333333333;
        double r1267882 = r1267862 * r1267881;
        double r1267883 = r1267862 * r1267882;
        double r1267884 = 0.16666666666666666;
        double r1267885 = r1267860 * r1267860;
        double r1267886 = r1267884 * r1267885;
        double r1267887 = r1267883 - r1267886;
        double r1267888 = r1267887 * r1267860;
        double r1267889 = r1267860 + r1267888;
        double r1267890 = r1267861 / r1267889;
        double r1267891 = r1267873 * r1267890;
        double r1267892 = r1267871 ? r1267880 : r1267891;
        return r1267892;
}

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

      \[\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}}}}\]
    6. Using strategy rm
    7. Applied add-cube-cbrt11.2

      \[\leadsto \sin ky \cdot \frac{\sin th}{\sqrt{\color{blue}{\left(\sqrt[3]{{\left(\sin kx\right)}^{2}} \cdot \sqrt[3]{{\left(\sin kx\right)}^{2}}\right) \cdot \sqrt[3]{{\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.3

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

      \[\leadsto \frac{\sin ky}{\color{blue}{\left(\frac{1}{12} \cdot \left({kx}^{2} \cdot ky\right) + ky\right) - \frac{1}{6} \cdot {ky}^{3}}} \cdot \sin th\]
    3. Simplified27.0

      \[\leadsto \frac{\sin ky}{\color{blue}{ky + ky \cdot \left(\left(\frac{1}{12} \cdot kx\right) \cdot kx - \frac{1}{6} \cdot \left(ky \cdot ky\right)\right)}} \cdot \sin th\]
  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:\\ \;\;\;\;\frac{\sin th}{\sqrt{{\left(\sin ky\right)}^{2} + \left(\sqrt[3]{{\left(\sin kx\right)}^{2}} \cdot \sqrt[3]{{\left(\sin kx\right)}^{2}}\right) \cdot \sqrt[3]{{\left(\sin kx\right)}^{2}}}} \cdot \sin ky\\ \mathbf{else}:\\ \;\;\;\;\sin th \cdot \frac{\sin ky}{ky + \left(kx \cdot \left(kx \cdot \frac{1}{12}\right) - \frac{1}{6} \cdot \left(ky \cdot ky\right)\right) \cdot ky}\\ \end{array}\]

Reproduce

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