Average Error: 12.4 → 11.7
Time: 20.6s
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.99999999999092881:\\ \;\;\;\;\left(\sin ky \cdot \frac{1}{\sqrt{{\left(\sqrt[3]{\sin kx} \cdot \sqrt[3]{\sin kx}\right)}^{2} \cdot {\left(\sqrt[3]{\sin kx}\right)}^{2} + {\left(\sin ky\right)}^{2}}}\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.99999999999092881:\\
\;\;\;\;\left(\sin ky \cdot \frac{1}{\sqrt{{\left(\sqrt[3]{\sin kx} \cdot \sqrt[3]{\sin kx}\right)}^{2} \cdot {\left(\sqrt[3]{\sin kx}\right)}^{2} + {\left(\sin ky\right)}^{2}}}\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 r41436 = ky;
        double r41437 = sin(r41436);
        double r41438 = kx;
        double r41439 = sin(r41438);
        double r41440 = 2.0;
        double r41441 = pow(r41439, r41440);
        double r41442 = pow(r41437, r41440);
        double r41443 = r41441 + r41442;
        double r41444 = sqrt(r41443);
        double r41445 = r41437 / r41444;
        double r41446 = th;
        double r41447 = sin(r41446);
        double r41448 = r41445 * r41447;
        return r41448;
}

double f(double kx, double ky, double th) {
        double r41449 = ky;
        double r41450 = sin(r41449);
        double r41451 = kx;
        double r41452 = sin(r41451);
        double r41453 = 2.0;
        double r41454 = pow(r41452, r41453);
        double r41455 = pow(r41450, r41453);
        double r41456 = r41454 + r41455;
        double r41457 = sqrt(r41456);
        double r41458 = r41450 / r41457;
        double r41459 = 0.9999999999909288;
        bool r41460 = r41458 <= r41459;
        double r41461 = 1.0;
        double r41462 = cbrt(r41452);
        double r41463 = r41462 * r41462;
        double r41464 = pow(r41463, r41453);
        double r41465 = pow(r41462, r41453);
        double r41466 = r41464 * r41465;
        double r41467 = r41466 + r41455;
        double r41468 = sqrt(r41467);
        double r41469 = r41461 / r41468;
        double r41470 = r41450 * r41469;
        double r41471 = th;
        double r41472 = sin(r41471);
        double r41473 = r41470 * r41472;
        double r41474 = 0.16666666666666666;
        double r41475 = 2.0;
        double r41476 = pow(r41451, r41475);
        double r41477 = r41474 * r41476;
        double r41478 = r41461 - r41477;
        double r41479 = r41478 * r41472;
        double r41480 = r41460 ? r41473 : r41479;
        return r41480;
}

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

    1. Initial program 13.2

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

      \[\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. Using strategy rm
    5. Applied add-cube-cbrt13.6

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

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

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

    1. Initial program 8.8

      \[\frac{\sin ky}{\sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin th\]
    2. Using strategy rm
    3. Applied clear-num8.8

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

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

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

Reproduce

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