Average Error: 16.6 → 9.7
Time: 27.4s
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}\;\sqrt{{\left(\frac{U}{\left(J \cdot 2\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2} + 1} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right) = -\infty:\\ \;\;\;\;-U\\ \mathbf{elif}\;\sqrt{{\left(\frac{U}{\left(J \cdot 2\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2} + 1} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right) \le 1.4084612662889073 \cdot 10^{+294}:\\ \;\;\;\;\left(-2 \cdot J\right) \cdot \left(\sqrt{1 + \frac{U}{J \cdot \left(\cos \left(\frac{K}{2}\right) \cdot 2\right)} \cdot \frac{U}{J \cdot \left(\cos \left(\frac{K}{2}\right) \cdot 2\right)}} \cdot \cos \left(\frac{K}{2}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;-U\\ \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}\;\sqrt{{\left(\frac{U}{\left(J \cdot 2\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2} + 1} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right) = -\infty:\\
\;\;\;\;-U\\

\mathbf{elif}\;\sqrt{{\left(\frac{U}{\left(J \cdot 2\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{2} + 1} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right) \le 1.4084612662889073 \cdot 10^{+294}:\\
\;\;\;\;\left(-2 \cdot J\right) \cdot \left(\sqrt{1 + \frac{U}{J \cdot \left(\cos \left(\frac{K}{2}\right) \cdot 2\right)} \cdot \frac{U}{J \cdot \left(\cos \left(\frac{K}{2}\right) \cdot 2\right)}} \cdot \cos \left(\frac{K}{2}\right)\right)\\

\mathbf{else}:\\
\;\;\;\;-U\\

\end{array}
double f(double J, double K, double U) {
        double r4218062 = -2.0;
        double r4218063 = J;
        double r4218064 = r4218062 * r4218063;
        double r4218065 = K;
        double r4218066 = 2.0;
        double r4218067 = r4218065 / r4218066;
        double r4218068 = cos(r4218067);
        double r4218069 = r4218064 * r4218068;
        double r4218070 = 1.0;
        double r4218071 = U;
        double r4218072 = r4218066 * r4218063;
        double r4218073 = r4218072 * r4218068;
        double r4218074 = r4218071 / r4218073;
        double r4218075 = pow(r4218074, r4218066);
        double r4218076 = r4218070 + r4218075;
        double r4218077 = sqrt(r4218076);
        double r4218078 = r4218069 * r4218077;
        return r4218078;
}

double f(double J, double K, double U) {
        double r4218079 = U;
        double r4218080 = J;
        double r4218081 = 2.0;
        double r4218082 = r4218080 * r4218081;
        double r4218083 = K;
        double r4218084 = r4218083 / r4218081;
        double r4218085 = cos(r4218084);
        double r4218086 = r4218082 * r4218085;
        double r4218087 = r4218079 / r4218086;
        double r4218088 = pow(r4218087, r4218081);
        double r4218089 = 1.0;
        double r4218090 = r4218088 + r4218089;
        double r4218091 = sqrt(r4218090);
        double r4218092 = -2.0;
        double r4218093 = r4218092 * r4218080;
        double r4218094 = r4218085 * r4218093;
        double r4218095 = r4218091 * r4218094;
        double r4218096 = -inf.0;
        bool r4218097 = r4218095 <= r4218096;
        double r4218098 = -r4218079;
        double r4218099 = 1.4084612662889073e+294;
        bool r4218100 = r4218095 <= r4218099;
        double r4218101 = r4218085 * r4218081;
        double r4218102 = r4218080 * r4218101;
        double r4218103 = r4218079 / r4218102;
        double r4218104 = r4218103 * r4218103;
        double r4218105 = r4218089 + r4218104;
        double r4218106 = sqrt(r4218105);
        double r4218107 = r4218106 * r4218085;
        double r4218108 = r4218093 * r4218107;
        double r4218109 = r4218100 ? r4218108 : r4218098;
        double r4218110 = r4218097 ? r4218098 : r4218109;
        return r4218110;
}

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 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))) < -inf.0 or 1.4084612662889073e+294 < (* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))

    1. Initial program 57.4

      \[\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 associate-*l*57.4

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

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

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

      \[\leadsto \color{blue}{-U}\]

    if -inf.0 < (* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))) < 1.4084612662889073e+294

    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 associate-*l*0.2

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

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

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

Reproduce

herbie shell --seed 2019163 
(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)))))