Average Error: 12.5 → 11.9
Time: 17.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(\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 r39138 = ky;
        double r39139 = sin(r39138);
        double r39140 = kx;
        double r39141 = sin(r39140);
        double r39142 = 2.0;
        double r39143 = pow(r39141, r39142);
        double r39144 = pow(r39139, r39142);
        double r39145 = r39143 + r39144;
        double r39146 = sqrt(r39145);
        double r39147 = r39139 / r39146;
        double r39148 = th;
        double r39149 = sin(r39148);
        double r39150 = r39147 * r39149;
        return r39150;
}

double f(double kx, double ky, double th) {
        double r39151 = ky;
        double r39152 = sin(r39151);
        double r39153 = kx;
        double r39154 = sin(r39153);
        double r39155 = 2.0;
        double r39156 = pow(r39154, r39155);
        double r39157 = pow(r39152, r39155);
        double r39158 = r39156 + r39157;
        double r39159 = sqrt(r39158);
        double r39160 = r39152 / r39159;
        double r39161 = 1.0;
        bool r39162 = r39160 <= r39161;
        double r39163 = 1.0;
        double r39164 = 2.0;
        double r39165 = pow(r39154, r39164);
        double r39166 = pow(r39152, r39164);
        double r39167 = r39165 + r39166;
        double r39168 = r39163 / r39167;
        double r39169 = sqrt(r39168);
        double r39170 = r39169 * r39152;
        double r39171 = th;
        double r39172 = sin(r39171);
        double r39173 = r39170 * r39172;
        double r39174 = 0.08333333333333333;
        double r39175 = pow(r39153, r39164);
        double r39176 = r39175 * r39151;
        double r39177 = r39174 * r39176;
        double r39178 = r39151 + r39177;
        double r39179 = 0.16666666666666666;
        double r39180 = 3.0;
        double r39181 = pow(r39151, r39180);
        double r39182 = r39179 * r39181;
        double r39183 = r39178 - r39182;
        double r39184 = r39152 / r39183;
        double r39185 = r39184 * r39172;
        double r39186 = r39162 ? r39173 : r39185;
        return r39186;
}

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)))