Average Error: 12.5 → 11.9
Time: 34.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 1:\\ \;\;\;\;\left(\sin ky \cdot \frac{1}{\sqrt{\left(\sqrt[3]{{\left(\sin kx\right)}^{2}} \cdot \sqrt[3]{{\left(\sin kx\right)}^{2}}\right) \cdot \sqrt[3]{{\left(\sin kx\right)}^{2}} + {\left(\sin ky\right)}^{2}}}\right) \cdot \sin th\\ \mathbf{else}:\\ \;\;\;\;\frac{\sin ky}{\left(ky + \frac{1}{12} \cdot \left({kx}^{2} \cdot ky\right)\right) - \frac{1}{6} \cdot {ky}^{3}} \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 1:\\
\;\;\;\;\left(\sin ky \cdot \frac{1}{\sqrt{\left(\sqrt[3]{{\left(\sin kx\right)}^{2}} \cdot \sqrt[3]{{\left(\sin kx\right)}^{2}}\right) \cdot \sqrt[3]{{\left(\sin kx\right)}^{2}} + {\left(\sin ky\right)}^{2}}}\right) \cdot \sin th\\

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

\end{array}
double f(double kx, double ky, double th) {
        double r41578 = ky;
        double r41579 = sin(r41578);
        double r41580 = kx;
        double r41581 = sin(r41580);
        double r41582 = 2.0;
        double r41583 = pow(r41581, r41582);
        double r41584 = pow(r41579, r41582);
        double r41585 = r41583 + r41584;
        double r41586 = sqrt(r41585);
        double r41587 = r41579 / r41586;
        double r41588 = th;
        double r41589 = sin(r41588);
        double r41590 = r41587 * r41589;
        return r41590;
}

double f(double kx, double ky, double th) {
        double r41591 = ky;
        double r41592 = sin(r41591);
        double r41593 = kx;
        double r41594 = sin(r41593);
        double r41595 = 2.0;
        double r41596 = pow(r41594, r41595);
        double r41597 = pow(r41592, r41595);
        double r41598 = r41596 + r41597;
        double r41599 = sqrt(r41598);
        double r41600 = r41592 / r41599;
        double r41601 = 1.0;
        bool r41602 = r41600 <= r41601;
        double r41603 = 1.0;
        double r41604 = cbrt(r41596);
        double r41605 = r41604 * r41604;
        double r41606 = r41605 * r41604;
        double r41607 = r41606 + r41597;
        double r41608 = sqrt(r41607);
        double r41609 = r41603 / r41608;
        double r41610 = r41592 * r41609;
        double r41611 = th;
        double r41612 = sin(r41611);
        double r41613 = r41610 * r41612;
        double r41614 = 0.08333333333333333;
        double r41615 = 2.0;
        double r41616 = pow(r41593, r41615);
        double r41617 = r41616 * r41591;
        double r41618 = r41614 * r41617;
        double r41619 = r41591 + r41618;
        double r41620 = 0.16666666666666666;
        double r41621 = 3.0;
        double r41622 = pow(r41591, r41621);
        double r41623 = r41620 * r41622;
        double r41624 = r41619 - r41623;
        double r41625 = r41592 / r41624;
        double r41626 = r41625 * r41612;
        double r41627 = r41602 ? r41613 : r41626;
        return r41627;
}

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 11.1

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

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

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

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

    1. Initial program 61.8

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

      \[\leadsto \frac{\sin ky}{\color{blue}{\left(ky + \frac{1}{12} \cdot \left({kx}^{2} \cdot ky\right)\right) - \frac{1}{6} \cdot {ky}^{3}}} \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 1:\\ \;\;\;\;\left(\sin ky \cdot \frac{1}{\sqrt{\left(\sqrt[3]{{\left(\sin kx\right)}^{2}} \cdot \sqrt[3]{{\left(\sin kx\right)}^{2}}\right) \cdot \sqrt[3]{{\left(\sin kx\right)}^{2}} + {\left(\sin ky\right)}^{2}}}\right) \cdot \sin th\\ \mathbf{else}:\\ \;\;\;\;\frac{\sin ky}{\left(ky + \frac{1}{12} \cdot \left({kx}^{2} \cdot ky\right)\right) - \frac{1}{6} \cdot {ky}^{3}} \cdot \sin th\\ \end{array}\]

Reproduce

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