Average Error: 12.7 → 11.8
Time: 19.7s
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.9999999513989566990446178351703565567732:\\ \;\;\;\;\frac{\sqrt{1} \cdot \sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \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.9999999513989566990446178351703565567732:\\
\;\;\;\;\frac{\sqrt{1} \cdot \sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \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 r28398 = ky;
        double r28399 = sin(r28398);
        double r28400 = kx;
        double r28401 = sin(r28400);
        double r28402 = 2.0;
        double r28403 = pow(r28401, r28402);
        double r28404 = pow(r28399, r28402);
        double r28405 = r28403 + r28404;
        double r28406 = sqrt(r28405);
        double r28407 = r28399 / r28406;
        double r28408 = th;
        double r28409 = sin(r28408);
        double r28410 = r28407 * r28409;
        return r28410;
}

double f(double kx, double ky, double th) {
        double r28411 = ky;
        double r28412 = sin(r28411);
        double r28413 = kx;
        double r28414 = sin(r28413);
        double r28415 = 2.0;
        double r28416 = pow(r28414, r28415);
        double r28417 = pow(r28412, r28415);
        double r28418 = r28416 + r28417;
        double r28419 = sqrt(r28418);
        double r28420 = r28412 / r28419;
        double r28421 = 0.9999999513989567;
        bool r28422 = r28420 <= r28421;
        double r28423 = 1.0;
        double r28424 = sqrt(r28423);
        double r28425 = r28424 * r28412;
        double r28426 = 2.0;
        double r28427 = pow(r28414, r28426);
        double r28428 = pow(r28412, r28426);
        double r28429 = r28427 + r28428;
        double r28430 = sqrt(r28429);
        double r28431 = r28425 / r28430;
        double r28432 = th;
        double r28433 = sin(r28432);
        double r28434 = r28431 * r28433;
        double r28435 = 0.16666666666666666;
        double r28436 = pow(r28413, r28426);
        double r28437 = r28435 * r28436;
        double r28438 = r28423 - r28437;
        double r28439 = r28438 * r28433;
        double r28440 = r28422 ? r28434 : r28439;
        return r28440;
}

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

    1. Initial program 13.6

      \[\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
    2. Taylor expanded around inf 13.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. Using strategy rm
    4. Applied sqrt-div13.6

      \[\leadsto \left(\color{blue}{\frac{\sqrt{1}}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}}} \cdot \sin ky\right) \cdot \sin th\]
    5. Applied associate-*l/13.6

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

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

    1. Initial program 9.4

      \[\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
    2. Taylor expanded around inf 10.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\]
    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.8

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

Reproduce

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