Average Error: 17.2 → 15.7
Time: 39.3s
Precision: 64
\[\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \sqrt{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}}\]
\[\begin{array}{l} \mathbf{if}\;J \le -3.3576117535859503 \cdot 10^{-209}:\\ \;\;\;\;\sqrt{1 + \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)} \cdot \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)}} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\ \mathbf{elif}\;J \le 1.4740161299218837 \cdot 10^{-204}:\\ \;\;\;\;-U\\ \mathbf{else}:\\ \;\;\;\;\sqrt{1 + \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)} \cdot \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)}} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\ \end{array}\]
\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \sqrt{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}}
\begin{array}{l}
\mathbf{if}\;J \le -3.3576117535859503 \cdot 10^{-209}:\\
\;\;\;\;\sqrt{1 + \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)} \cdot \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)}} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\

\mathbf{elif}\;J \le 1.4740161299218837 \cdot 10^{-204}:\\
\;\;\;\;-U\\

\mathbf{else}:\\
\;\;\;\;\sqrt{1 + \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)} \cdot \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)}} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\

\end{array}
double f(double J, double K, double U) {
        double r4942895 = -2.0;
        double r4942896 = J;
        double r4942897 = r4942895 * r4942896;
        double r4942898 = K;
        double r4942899 = 2.0;
        double r4942900 = r4942898 / r4942899;
        double r4942901 = cos(r4942900);
        double r4942902 = r4942897 * r4942901;
        double r4942903 = 1.0;
        double r4942904 = U;
        double r4942905 = r4942899 * r4942896;
        double r4942906 = r4942905 * r4942901;
        double r4942907 = r4942904 / r4942906;
        double r4942908 = pow(r4942907, r4942899);
        double r4942909 = r4942903 + r4942908;
        double r4942910 = sqrt(r4942909);
        double r4942911 = r4942902 * r4942910;
        return r4942911;
}

double f(double J, double K, double U) {
        double r4942912 = J;
        double r4942913 = -3.3576117535859503e-209;
        bool r4942914 = r4942912 <= r4942913;
        double r4942915 = 1.0;
        double r4942916 = U;
        double r4942917 = K;
        double r4942918 = 2.0;
        double r4942919 = r4942917 / r4942918;
        double r4942920 = cos(r4942919);
        double r4942921 = r4942918 * r4942912;
        double r4942922 = r4942920 * r4942921;
        double r4942923 = r4942916 / r4942922;
        double r4942924 = r4942923 * r4942923;
        double r4942925 = r4942915 + r4942924;
        double r4942926 = sqrt(r4942925);
        double r4942927 = -2.0;
        double r4942928 = r4942927 * r4942912;
        double r4942929 = r4942920 * r4942928;
        double r4942930 = r4942926 * r4942929;
        double r4942931 = 1.4740161299218837e-204;
        bool r4942932 = r4942912 <= r4942931;
        double r4942933 = -r4942916;
        double r4942934 = r4942932 ? r4942933 : r4942930;
        double r4942935 = r4942914 ? r4942930 : r4942934;
        return r4942935;
}

Error

Bits error versus J

Bits error versus K

Bits error versus U

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if J < -3.3576117535859503e-209 or 1.4740161299218837e-204 < J

    1. Initial program 12.3

      \[\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \sqrt{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}}\]
    2. Simplified12.3

      \[\leadsto \color{blue}{\sqrt{\frac{U}{\left(J \cdot 2\right) \cdot \cos \left(\frac{K}{2}\right)} \cdot \frac{U}{\left(J \cdot 2\right) \cdot \cos \left(\frac{K}{2}\right)} + 1} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)}\]

    if -3.3576117535859503e-209 < J < 1.4740161299218837e-204

    1. Initial program 42.3

      \[\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \sqrt{1 + {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2}}\]
    2. Simplified42.3

      \[\leadsto \color{blue}{\sqrt{\frac{U}{\left(J \cdot 2\right) \cdot \cos \left(\frac{K}{2}\right)} \cdot \frac{U}{\left(J \cdot 2\right) \cdot \cos \left(\frac{K}{2}\right)} + 1} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)}\]
    3. Taylor expanded around inf 33.1

      \[\leadsto \color{blue}{-1 \cdot U}\]
    4. Simplified33.1

      \[\leadsto \color{blue}{-U}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification15.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;J \le -3.3576117535859503 \cdot 10^{-209}:\\ \;\;\;\;\sqrt{1 + \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)} \cdot \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)}} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\ \mathbf{elif}\;J \le 1.4740161299218837 \cdot 10^{-204}:\\ \;\;\;\;-U\\ \mathbf{else}:\\ \;\;\;\;\sqrt{1 + \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)} \cdot \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)}} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019152 
(FPCore (J K U)
  :name "Maksimov and Kolovsky, Equation (3)"
  (* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))