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

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

\end{array}
double f(double kx, double ky, double th) {
        double r1394250 = ky;
        double r1394251 = sin(r1394250);
        double r1394252 = kx;
        double r1394253 = sin(r1394252);
        double r1394254 = 2.0;
        double r1394255 = pow(r1394253, r1394254);
        double r1394256 = pow(r1394251, r1394254);
        double r1394257 = r1394255 + r1394256;
        double r1394258 = sqrt(r1394257);
        double r1394259 = r1394251 / r1394258;
        double r1394260 = th;
        double r1394261 = sin(r1394260);
        double r1394262 = r1394259 * r1394261;
        return r1394262;
}

double f(double kx, double ky, double th) {
        double r1394263 = ky;
        double r1394264 = sin(r1394263);
        double r1394265 = kx;
        double r1394266 = sin(r1394265);
        double r1394267 = 2.0;
        double r1394268 = pow(r1394266, r1394267);
        double r1394269 = pow(r1394264, r1394267);
        double r1394270 = r1394268 + r1394269;
        double r1394271 = sqrt(r1394270);
        double r1394272 = r1394264 / r1394271;
        double r1394273 = 1.0;
        bool r1394274 = r1394272 <= r1394273;
        double r1394275 = th;
        double r1394276 = sin(r1394275);
        double r1394277 = cbrt(r1394266);
        double r1394278 = pow(r1394277, r1394267);
        double r1394279 = cbrt(r1394277);
        double r1394280 = r1394279 * r1394279;
        double r1394281 = r1394280 * r1394279;
        double r1394282 = r1394281 * r1394277;
        double r1394283 = pow(r1394282, r1394267);
        double r1394284 = r1394278 * r1394283;
        double r1394285 = r1394284 + r1394269;
        double r1394286 = sqrt(r1394285);
        double r1394287 = r1394264 / r1394286;
        double r1394288 = r1394276 * r1394287;
        double r1394289 = r1394265 * r1394265;
        double r1394290 = 0.08333333333333333;
        double r1394291 = r1394289 * r1394290;
        double r1394292 = 0.16666666666666666;
        double r1394293 = r1394292 * r1394263;
        double r1394294 = r1394263 * r1394293;
        double r1394295 = r1394291 - r1394294;
        double r1394296 = r1394295 * r1394263;
        double r1394297 = r1394263 + r1394296;
        double r1394298 = r1394264 / r1394297;
        double r1394299 = r1394298 * r1394276;
        double r1394300 = r1394274 ? r1394288 : r1394299;
        return r1394300;
}

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 10.8

      \[\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
    2. Using strategy rm
    3. Applied add-cube-cbrt11.0

      \[\leadsto \frac{\sin ky}{\sqrt{{\color{blue}{\left(\left(\sqrt[3]{\sin kx} \cdot \sqrt[3]{\sin kx}\right) \cdot \sqrt[3]{\sin kx}\right)}}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
    4. Applied unpow-prod-down11.1

      \[\leadsto \frac{\sin ky}{\sqrt{\color{blue}{{\left(\sqrt[3]{\sin kx} \cdot \sqrt[3]{\sin kx}\right)}^{2} \cdot {\left(\sqrt[3]{\sin kx}\right)}^{2}} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
    5. Using strategy rm
    6. Applied add-cube-cbrt11.1

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

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

    1. Initial program 62.6

      \[\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
    2. Using strategy rm
    3. Applied add-cube-cbrt62.6

      \[\leadsto \frac{\sin ky}{\sqrt{{\color{blue}{\left(\left(\sqrt[3]{\sin kx} \cdot \sqrt[3]{\sin kx}\right) \cdot \sqrt[3]{\sin kx}\right)}}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
    4. Applied unpow-prod-down62.6

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

      \[\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\]
    6. Simplified30.2

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

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

Reproduce

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