Average Error: 3.8 → 3.0
Time: 11.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 ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\\ \mathbf{else}:\\ \;\;\;\;\frac{\sin ky \cdot \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:\\
\;\;\;\;\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\\

\mathbf{else}:\\
\;\;\;\;\frac{\sin ky \cdot \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 r39558 = ky;
        double r39559 = sin(r39558);
        double r39560 = kx;
        double r39561 = sin(r39560);
        double r39562 = 2.0;
        double r39563 = pow(r39561, r39562);
        double r39564 = pow(r39559, r39562);
        double r39565 = r39563 + r39564;
        double r39566 = sqrt(r39565);
        double r39567 = r39559 / r39566;
        double r39568 = th;
        double r39569 = sin(r39568);
        double r39570 = r39567 * r39569;
        return r39570;
}

double f(double kx, double ky, double th) {
        double r39571 = ky;
        double r39572 = sin(r39571);
        double r39573 = kx;
        double r39574 = sin(r39573);
        double r39575 = 2.0;
        double r39576 = pow(r39574, r39575);
        double r39577 = pow(r39572, r39575);
        double r39578 = r39576 + r39577;
        double r39579 = sqrt(r39578);
        double r39580 = r39572 / r39579;
        double r39581 = 1.0;
        bool r39582 = r39580 <= r39581;
        double r39583 = th;
        double r39584 = sin(r39583);
        double r39585 = r39580 * r39584;
        double r39586 = r39572 * r39584;
        double r39587 = 0.08333333333333333;
        double r39588 = 2.0;
        double r39589 = pow(r39573, r39588);
        double r39590 = r39589 * r39571;
        double r39591 = r39587 * r39590;
        double r39592 = r39571 + r39591;
        double r39593 = 0.16666666666666666;
        double r39594 = 3.0;
        double r39595 = pow(r39571, r39594);
        double r39596 = r39593 * r39595;
        double r39597 = r39592 - r39596;
        double r39598 = r39586 / r39597;
        double r39599 = r39582 ? r39585 : r39598;
        return r39599;
}

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 1.9

      \[\frac{\sin ky}{\sqrt{{\left(\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 63.8

      \[\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
    2. Using strategy rm
    3. Applied associate-*l/63.8

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

      \[\leadsto \frac{\sin ky \cdot \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 simplification3.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \le 1:\\ \;\;\;\;\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\\ \mathbf{else}:\\ \;\;\;\;\frac{\sin ky \cdot \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 2020100 
(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)))