Average Error: 12.6 → 11.9
Time: 29.2s
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 0.9999999983692884342190154711715877056122:\\ \;\;\;\;\left(\sqrt{\frac{1}{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin ky\right) \cdot \sin th\\ \mathbf{else}:\\ \;\;\;\;\left(1 - \frac{1}{6} \cdot {kx}^{2}\right) \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 0.9999999983692884342190154711715877056122:\\
\;\;\;\;\left(\sqrt{\frac{1}{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin ky\right) \cdot \sin th\\

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

\end{array}
double f(double kx, double ky, double th) {
        double r34442 = ky;
        double r34443 = sin(r34442);
        double r34444 = kx;
        double r34445 = sin(r34444);
        double r34446 = 2.0;
        double r34447 = pow(r34445, r34446);
        double r34448 = pow(r34443, r34446);
        double r34449 = r34447 + r34448;
        double r34450 = sqrt(r34449);
        double r34451 = r34443 / r34450;
        double r34452 = th;
        double r34453 = sin(r34452);
        double r34454 = r34451 * r34453;
        return r34454;
}

double f(double kx, double ky, double th) {
        double r34455 = ky;
        double r34456 = sin(r34455);
        double r34457 = kx;
        double r34458 = sin(r34457);
        double r34459 = 2.0;
        double r34460 = pow(r34458, r34459);
        double r34461 = pow(r34456, r34459);
        double r34462 = r34460 + r34461;
        double r34463 = sqrt(r34462);
        double r34464 = r34456 / r34463;
        double r34465 = 0.9999999983692884;
        bool r34466 = r34464 <= r34465;
        double r34467 = 1.0;
        double r34468 = 2.0;
        double r34469 = pow(r34458, r34468);
        double r34470 = pow(r34456, r34468);
        double r34471 = r34469 + r34470;
        double r34472 = r34467 / r34471;
        double r34473 = sqrt(r34472);
        double r34474 = r34473 * r34456;
        double r34475 = th;
        double r34476 = sin(r34475);
        double r34477 = r34474 * r34476;
        double r34478 = 0.16666666666666666;
        double r34479 = pow(r34457, r34468);
        double r34480 = r34478 * r34479;
        double r34481 = r34467 - r34480;
        double r34482 = r34481 * r34476;
        double r34483 = r34466 ? r34477 : r34482;
        return r34483;
}

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)))) < 0.9999999983692884

    1. Initial program 13.4

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

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

      \[\leadsto \frac{\sin ky}{\color{blue}{\sqrt{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sqrt{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}}} \cdot \sin th\]
    5. Applied *-un-lft-identity13.6

      \[\leadsto \frac{\color{blue}{1 \cdot \sin ky}}{\sqrt{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sqrt{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}} \cdot \sin th\]
    6. Applied times-frac13.6

      \[\leadsto \color{blue}{\left(\frac{1}{\sqrt{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}} \cdot \frac{\sin ky}{\sqrt{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}}\right)} \cdot \sin th\]
    7. Taylor expanded around inf 13.7

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

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

    1. Initial program 9.5

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

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

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

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

Reproduce

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