Average Error: 4.1 → 3.4
Time: 10.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.99999999298283071:\\ \;\;\;\;\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.99999999298283071:\\
\;\;\;\;\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 r35363 = ky;
        double r35364 = sin(r35363);
        double r35365 = kx;
        double r35366 = sin(r35365);
        double r35367 = 2.0;
        double r35368 = pow(r35366, r35367);
        double r35369 = pow(r35364, r35367);
        double r35370 = r35368 + r35369;
        double r35371 = sqrt(r35370);
        double r35372 = r35364 / r35371;
        double r35373 = th;
        double r35374 = sin(r35373);
        double r35375 = r35372 * r35374;
        return r35375;
}

double f(double kx, double ky, double th) {
        double r35376 = ky;
        double r35377 = sin(r35376);
        double r35378 = kx;
        double r35379 = sin(r35378);
        double r35380 = 2.0;
        double r35381 = pow(r35379, r35380);
        double r35382 = pow(r35377, r35380);
        double r35383 = r35381 + r35382;
        double r35384 = sqrt(r35383);
        double r35385 = r35377 / r35384;
        double r35386 = 0.9999999929828307;
        bool r35387 = r35385 <= r35386;
        double r35388 = 1.0;
        double r35389 = 2.0;
        double r35390 = pow(r35379, r35389);
        double r35391 = pow(r35377, r35389);
        double r35392 = r35390 + r35391;
        double r35393 = r35388 / r35392;
        double r35394 = sqrt(r35393);
        double r35395 = r35394 * r35377;
        double r35396 = th;
        double r35397 = sin(r35396);
        double r35398 = r35395 * r35397;
        double r35399 = 0.16666666666666666;
        double r35400 = pow(r35378, r35389);
        double r35401 = r35399 * r35400;
        double r35402 = r35388 - r35401;
        double r35403 = r35402 * r35397;
        double r35404 = r35387 ? r35398 : r35403;
        return r35404;
}

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

    1. Initial program 2.6

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

      \[\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.9999999929828307 < (/ (sin ky) (sqrt (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0))))

    1. Initial program 10.1

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

      \[\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 5.0

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

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