Average Error: 17.3 → 9.6
Time: 26.0s
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 3.1876595894319666 \cdot 10^{+307}:\\ \;\;\;\;\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)\\ \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 3.1876595894319666 \cdot 10^{+307}:\\
\;\;\;\;\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)\\

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

\end{array}
double f(double J, double K, double U) {
        double r3982497 = -2.0;
        double r3982498 = J;
        double r3982499 = r3982497 * r3982498;
        double r3982500 = K;
        double r3982501 = 2.0;
        double r3982502 = r3982500 / r3982501;
        double r3982503 = cos(r3982502);
        double r3982504 = r3982499 * r3982503;
        double r3982505 = 1.0;
        double r3982506 = U;
        double r3982507 = r3982501 * r3982498;
        double r3982508 = r3982507 * r3982503;
        double r3982509 = r3982506 / r3982508;
        double r3982510 = pow(r3982509, r3982501);
        double r3982511 = r3982505 + r3982510;
        double r3982512 = sqrt(r3982511);
        double r3982513 = r3982504 * r3982512;
        return r3982513;
}

double f(double J, double K, double U) {
        double r3982514 = U;
        double r3982515 = J;
        double r3982516 = 2.0;
        double r3982517 = r3982515 * r3982516;
        double r3982518 = K;
        double r3982519 = r3982518 / r3982516;
        double r3982520 = cos(r3982519);
        double r3982521 = r3982517 * r3982520;
        double r3982522 = r3982514 / r3982521;
        double r3982523 = pow(r3982522, r3982516);
        double r3982524 = 1.0;
        double r3982525 = r3982523 + r3982524;
        double r3982526 = sqrt(r3982525);
        double r3982527 = -2.0;
        double r3982528 = r3982527 * r3982515;
        double r3982529 = r3982520 * r3982528;
        double r3982530 = r3982526 * r3982529;
        double r3982531 = -inf.0;
        bool r3982532 = r3982530 <= r3982531;
        double r3982533 = -r3982514;
        double r3982534 = 3.1876595894319666e+307;
        bool r3982535 = r3982530 <= r3982534;
        double r3982536 = r3982535 ? r3982530 : r3982533;
        double r3982537 = r3982532 ? r3982533 : r3982536;
        return r3982537;
}

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 3.1876595894319666e+307 < (* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2))))

    1. Initial program 60.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. Using strategy rm
    3. Applied associate-*l*60.3

      \[\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. Simplified60.3

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

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

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

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

    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}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification9.6

    \[\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 3.1876595894319666 \cdot 10^{+307}:\\ \;\;\;\;\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)\\ \mathbf{else}:\\ \;\;\;\;-U\\ \end{array}\]

Reproduce

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