Average Error: 16.6 → 9.7
Time: 24.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 r4755202 = -2.0;
        double r4755203 = J;
        double r4755204 = r4755202 * r4755203;
        double r4755205 = K;
        double r4755206 = 2.0;
        double r4755207 = r4755205 / r4755206;
        double r4755208 = cos(r4755207);
        double r4755209 = r4755204 * r4755208;
        double r4755210 = 1.0;
        double r4755211 = U;
        double r4755212 = r4755206 * r4755203;
        double r4755213 = r4755212 * r4755208;
        double r4755214 = r4755211 / r4755213;
        double r4755215 = pow(r4755214, r4755206);
        double r4755216 = r4755210 + r4755215;
        double r4755217 = sqrt(r4755216);
        double r4755218 = r4755209 * r4755217;
        return r4755218;
}

double f(double J, double K, double U) {
        double r4755219 = U;
        double r4755220 = J;
        double r4755221 = 2.0;
        double r4755222 = r4755220 * r4755221;
        double r4755223 = K;
        double r4755224 = r4755223 / r4755221;
        double r4755225 = cos(r4755224);
        double r4755226 = r4755222 * r4755225;
        double r4755227 = r4755219 / r4755226;
        double r4755228 = pow(r4755227, r4755221);
        double r4755229 = 1.0;
        double r4755230 = r4755228 + r4755229;
        double r4755231 = sqrt(r4755230);
        double r4755232 = -2.0;
        double r4755233 = r4755232 * r4755220;
        double r4755234 = r4755225 * r4755233;
        double r4755235 = r4755231 * r4755234;
        double r4755236 = -inf.0;
        bool r4755237 = r4755235 <= r4755236;
        double r4755238 = -r4755219;
        double r4755239 = 1.4084612662889073e+294;
        bool r4755240 = r4755235 <= r4755239;
        double r4755241 = r4755225 * r4755221;
        double r4755242 = r4755220 * r4755241;
        double r4755243 = r4755219 / r4755242;
        double r4755244 = r4755243 * r4755243;
        double r4755245 = r4755229 + r4755244;
        double r4755246 = sqrt(r4755245);
        double r4755247 = r4755246 * r4755225;
        double r4755248 = r4755233 * r4755247;
        double r4755249 = r4755240 ? r4755248 : r4755238;
        double r4755250 = r4755237 ? r4755238 : r4755249;
        return r4755250;
}

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