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

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

\end{array}
double f(double kx, double ky, double th) {
        double r1397410 = ky;
        double r1397411 = sin(r1397410);
        double r1397412 = kx;
        double r1397413 = sin(r1397412);
        double r1397414 = 2.0;
        double r1397415 = pow(r1397413, r1397414);
        double r1397416 = pow(r1397411, r1397414);
        double r1397417 = r1397415 + r1397416;
        double r1397418 = sqrt(r1397417);
        double r1397419 = r1397411 / r1397418;
        double r1397420 = th;
        double r1397421 = sin(r1397420);
        double r1397422 = r1397419 * r1397421;
        return r1397422;
}

double f(double kx, double ky, double th) {
        double r1397423 = ky;
        double r1397424 = sin(r1397423);
        double r1397425 = kx;
        double r1397426 = sin(r1397425);
        double r1397427 = 2.0;
        double r1397428 = pow(r1397426, r1397427);
        double r1397429 = pow(r1397424, r1397427);
        double r1397430 = r1397428 + r1397429;
        double r1397431 = sqrt(r1397430);
        double r1397432 = r1397424 / r1397431;
        double r1397433 = 1.0;
        bool r1397434 = r1397432 <= r1397433;
        double r1397435 = th;
        double r1397436 = sin(r1397435);
        double r1397437 = cbrt(r1397424);
        double r1397438 = r1397437 * r1397437;
        double r1397439 = pow(r1397438, r1397427);
        double r1397440 = pow(r1397437, r1397427);
        double r1397441 = r1397439 * r1397440;
        double r1397442 = r1397441 + r1397428;
        double r1397443 = sqrt(r1397442);
        double r1397444 = r1397436 / r1397443;
        double r1397445 = r1397424 * r1397444;
        double r1397446 = r1397425 * r1397425;
        double r1397447 = 0.08333333333333333;
        double r1397448 = r1397446 * r1397447;
        double r1397449 = r1397423 * r1397423;
        double r1397450 = 0.16666666666666666;
        double r1397451 = r1397449 * r1397450;
        double r1397452 = r1397448 - r1397451;
        double r1397453 = r1397452 * r1397423;
        double r1397454 = r1397423 + r1397453;
        double r1397455 = r1397424 / r1397454;
        double r1397456 = r1397436 * r1397455;
        double r1397457 = r1397434 ? r1397445 : r1397456;
        return r1397457;
}

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

      \[\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.5

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

      \[\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.5

      \[\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-cbrt12.0

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

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

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

    1. Initial program 62.8

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

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

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

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

Reproduce

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