Average Error: 12.5 → 11.8
Time: 14.5s
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:\\ \;\;\;\;\frac{\sin ky}{\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}}} \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:\\
\;\;\;\;\frac{\sin ky}{\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}}} \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 r47193 = ky;
        double r47194 = sin(r47193);
        double r47195 = kx;
        double r47196 = sin(r47195);
        double r47197 = 2.0;
        double r47198 = pow(r47196, r47197);
        double r47199 = pow(r47194, r47197);
        double r47200 = r47198 + r47199;
        double r47201 = sqrt(r47200);
        double r47202 = r47194 / r47201;
        double r47203 = th;
        double r47204 = sin(r47203);
        double r47205 = r47202 * r47204;
        return r47205;
}

double f(double kx, double ky, double th) {
        double r47206 = ky;
        double r47207 = sin(r47206);
        double r47208 = kx;
        double r47209 = sin(r47208);
        double r47210 = 2.0;
        double r47211 = pow(r47209, r47210);
        double r47212 = pow(r47207, r47210);
        double r47213 = r47211 + r47212;
        double r47214 = sqrt(r47213);
        double r47215 = r47207 / r47214;
        double r47216 = 1.0;
        bool r47217 = r47215 <= r47216;
        double r47218 = cbrt(r47209);
        double r47219 = r47218 * r47218;
        double r47220 = pow(r47219, r47210);
        double r47221 = pow(r47218, r47210);
        double r47222 = r47220 * r47221;
        double r47223 = r47222 + r47212;
        double r47224 = sqrt(r47223);
        double r47225 = r47207 / r47224;
        double r47226 = th;
        double r47227 = sin(r47226);
        double r47228 = r47225 * r47227;
        double r47229 = 0.08333333333333333;
        double r47230 = 2.0;
        double r47231 = pow(r47208, r47230);
        double r47232 = r47231 * r47206;
        double r47233 = r47229 * r47232;
        double r47234 = r47206 + r47233;
        double r47235 = 0.16666666666666666;
        double r47236 = 3.0;
        double r47237 = pow(r47206, r47236);
        double r47238 = r47235 * r47237;
        double r47239 = r47234 - r47238;
        double r47240 = r47207 / r47239;
        double r47241 = r47240 * r47227;
        double r47242 = r47217 ? r47228 : r47241;
        return r47242;
}

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 add-cube-cbrt11.3

      \[\leadsto \frac{\sin ky}{\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}}} \cdot \sin th\]
    4. Applied unpow-prod-down11.3

      \[\leadsto \frac{\sin ky}{\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}}} \cdot \sin th\]

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

    1. Initial program 63.6

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

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