Average Error: 17.9 → 14.1
Time: 7.2s
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}\;\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}} = -\infty \lor \neg \left(\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}} \le 6.9237292607862767 \cdot 10^{289}\right):\\ \;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \frac{\sqrt{0.25} \cdot U}{J \cdot \cos \left(0.5 \cdot K\right)}\\ \mathbf{else}:\\ \;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \sqrt{1 + {\left(\frac{1}{\frac{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}{U}}\right)}^{2}}\\ \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}\;\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}} = -\infty \lor \neg \left(\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}} \le 6.9237292607862767 \cdot 10^{289}\right):\\
\;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \frac{\sqrt{0.25} \cdot U}{J \cdot \cos \left(0.5 \cdot K\right)}\\

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

\end{array}
double f(double J, double K, double U) {
        double r238897 = -2.0;
        double r238898 = J;
        double r238899 = r238897 * r238898;
        double r238900 = K;
        double r238901 = 2.0;
        double r238902 = r238900 / r238901;
        double r238903 = cos(r238902);
        double r238904 = r238899 * r238903;
        double r238905 = 1.0;
        double r238906 = U;
        double r238907 = r238901 * r238898;
        double r238908 = r238907 * r238903;
        double r238909 = r238906 / r238908;
        double r238910 = pow(r238909, r238901);
        double r238911 = r238905 + r238910;
        double r238912 = sqrt(r238911);
        double r238913 = r238904 * r238912;
        return r238913;
}

double f(double J, double K, double U) {
        double r238914 = -2.0;
        double r238915 = J;
        double r238916 = r238914 * r238915;
        double r238917 = K;
        double r238918 = 2.0;
        double r238919 = r238917 / r238918;
        double r238920 = cos(r238919);
        double r238921 = r238916 * r238920;
        double r238922 = 1.0;
        double r238923 = U;
        double r238924 = r238918 * r238915;
        double r238925 = r238924 * r238920;
        double r238926 = r238923 / r238925;
        double r238927 = pow(r238926, r238918);
        double r238928 = r238922 + r238927;
        double r238929 = sqrt(r238928);
        double r238930 = r238921 * r238929;
        double r238931 = -inf.0;
        bool r238932 = r238930 <= r238931;
        double r238933 = 6.923729260786277e+289;
        bool r238934 = r238930 <= r238933;
        double r238935 = !r238934;
        bool r238936 = r238932 || r238935;
        double r238937 = 0.25;
        double r238938 = sqrt(r238937);
        double r238939 = r238938 * r238923;
        double r238940 = 0.5;
        double r238941 = r238940 * r238917;
        double r238942 = cos(r238941);
        double r238943 = r238915 * r238942;
        double r238944 = r238939 / r238943;
        double r238945 = r238921 * r238944;
        double r238946 = 1.0;
        double r238947 = r238925 / r238923;
        double r238948 = r238946 / r238947;
        double r238949 = pow(r238948, r238918);
        double r238950 = r238922 + r238949;
        double r238951 = sqrt(r238950);
        double r238952 = r238921 * r238951;
        double r238953 = r238936 ? r238945 : r238952;
        return r238953;
}

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 (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))) < -inf.0 or 6.923729260786277e+289 < (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0))))

    1. Initial program 59.7

      \[\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. Taylor expanded around inf 46.7

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

    if -inf.0 < (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))) < 6.923729260786277e+289

    1. Initial program 0.1

      \[\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. Using strategy rm
    3. Applied clear-num0.1

      \[\leadsto \left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \sqrt{1 + {\color{blue}{\left(\frac{1}{\frac{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}{U}}\right)}}^{2}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification14.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;\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}} = -\infty \lor \neg \left(\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}} \le 6.9237292607862767 \cdot 10^{289}\right):\\ \;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \frac{\sqrt{0.25} \cdot U}{J \cdot \cos \left(0.5 \cdot K\right)}\\ \mathbf{else}:\\ \;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \sqrt{1 + {\left(\frac{1}{\frac{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}{U}}\right)}^{2}}\\ \end{array}\]

Reproduce

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