Average Error: 12.5 → 11.9
Time: 17.9s
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(\sqrt{\frac{1}{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin ky\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(\sqrt{\frac{1}{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin ky\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 r39262 = ky;
        double r39263 = sin(r39262);
        double r39264 = kx;
        double r39265 = sin(r39264);
        double r39266 = 2.0;
        double r39267 = pow(r39265, r39266);
        double r39268 = pow(r39263, r39266);
        double r39269 = r39267 + r39268;
        double r39270 = sqrt(r39269);
        double r39271 = r39263 / r39270;
        double r39272 = th;
        double r39273 = sin(r39272);
        double r39274 = r39271 * r39273;
        return r39274;
}

double f(double kx, double ky, double th) {
        double r39275 = ky;
        double r39276 = sin(r39275);
        double r39277 = kx;
        double r39278 = sin(r39277);
        double r39279 = 2.0;
        double r39280 = pow(r39278, r39279);
        double r39281 = pow(r39276, r39279);
        double r39282 = r39280 + r39281;
        double r39283 = sqrt(r39282);
        double r39284 = r39276 / r39283;
        double r39285 = 1.0;
        bool r39286 = r39284 <= r39285;
        double r39287 = 1.0;
        double r39288 = 2.0;
        double r39289 = pow(r39278, r39288);
        double r39290 = pow(r39276, r39288);
        double r39291 = r39289 + r39290;
        double r39292 = r39287 / r39291;
        double r39293 = sqrt(r39292);
        double r39294 = r39293 * r39276;
        double r39295 = th;
        double r39296 = sin(r39295);
        double r39297 = r39294 * r39296;
        double r39298 = 0.08333333333333333;
        double r39299 = pow(r39277, r39288);
        double r39300 = r39299 * r39275;
        double r39301 = r39298 * r39300;
        double r39302 = r39275 + r39301;
        double r39303 = 0.16666666666666666;
        double r39304 = 3.0;
        double r39305 = pow(r39275, r39304);
        double r39306 = r39303 * r39305;
        double r39307 = r39302 - r39306;
        double r39308 = r39276 / r39307;
        double r39309 = r39308 * r39296;
        double r39310 = r39286 ? r39297 : r39309;
        return r39310;
}

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

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

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

    1. Initial program 62.5

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

      \[\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(\sqrt{\frac{1}{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}} \cdot \sin ky\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 2020042 
(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)))