Average Error: 17.7 → 18.9
Time: 23.9s
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}\;U \le -3.440264728937229717785528289539985872593 \cdot 10^{213} \lor \neg \left(U \le -1.468679264294656491917272404167659060091 \cdot 10^{122}\right):\\ \;\;\;\;\left(-2 \cdot J\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \sqrt{1 + {\left(\frac{\frac{U}{2 \cdot J}}{\cos \left(\frac{K}{2}\right)}\right)}^{2}}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(-2 \cdot J\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \frac{\sqrt{0.25} \cdot U}{J \cdot \cos \left(0.5 \cdot K\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}\;U \le -3.440264728937229717785528289539985872593 \cdot 10^{213} \lor \neg \left(U \le -1.468679264294656491917272404167659060091 \cdot 10^{122}\right):\\
\;\;\;\;\left(-2 \cdot J\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \sqrt{1 + {\left(\frac{\frac{U}{2 \cdot J}}{\cos \left(\frac{K}{2}\right)}\right)}^{2}}\right)\\

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

\end{array}
double f(double J, double K, double U) {
        double r110614 = -2.0;
        double r110615 = J;
        double r110616 = r110614 * r110615;
        double r110617 = K;
        double r110618 = 2.0;
        double r110619 = r110617 / r110618;
        double r110620 = cos(r110619);
        double r110621 = r110616 * r110620;
        double r110622 = 1.0;
        double r110623 = U;
        double r110624 = r110618 * r110615;
        double r110625 = r110624 * r110620;
        double r110626 = r110623 / r110625;
        double r110627 = pow(r110626, r110618);
        double r110628 = r110622 + r110627;
        double r110629 = sqrt(r110628);
        double r110630 = r110621 * r110629;
        return r110630;
}

double f(double J, double K, double U) {
        double r110631 = U;
        double r110632 = -3.44026472893723e+213;
        bool r110633 = r110631 <= r110632;
        double r110634 = -1.4686792642946565e+122;
        bool r110635 = r110631 <= r110634;
        double r110636 = !r110635;
        bool r110637 = r110633 || r110636;
        double r110638 = -2.0;
        double r110639 = J;
        double r110640 = r110638 * r110639;
        double r110641 = K;
        double r110642 = 2.0;
        double r110643 = r110641 / r110642;
        double r110644 = cos(r110643);
        double r110645 = 1.0;
        double r110646 = r110642 * r110639;
        double r110647 = r110631 / r110646;
        double r110648 = r110647 / r110644;
        double r110649 = pow(r110648, r110642);
        double r110650 = r110645 + r110649;
        double r110651 = sqrt(r110650);
        double r110652 = r110644 * r110651;
        double r110653 = r110640 * r110652;
        double r110654 = 0.25;
        double r110655 = sqrt(r110654);
        double r110656 = r110655 * r110631;
        double r110657 = 0.5;
        double r110658 = r110657 * r110641;
        double r110659 = cos(r110658);
        double r110660 = r110639 * r110659;
        double r110661 = r110656 / r110660;
        double r110662 = r110644 * r110661;
        double r110663 = r110640 * r110662;
        double r110664 = r110637 ? r110653 : r110663;
        return r110664;
}

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 U < -3.44026472893723e+213 or -1.4686792642946565e+122 < U

    1. Initial program 16.5

      \[\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*16.5

      \[\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. Using strategy rm
    5. Applied associate-/r*16.5

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

    if -3.44026472893723e+213 < U < -1.4686792642946565e+122

    1. Initial program 33.2

      \[\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*33.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. Taylor expanded around inf 48.8

      \[\leadsto \left(-2 \cdot J\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \color{blue}{\frac{\sqrt{0.25} \cdot U}{J \cdot \cos \left(0.5 \cdot K\right)}}\right)\]
  3. Recombined 2 regimes into one program.
  4. Final simplification18.9

    \[\leadsto \begin{array}{l} \mathbf{if}\;U \le -3.440264728937229717785528289539985872593 \cdot 10^{213} \lor \neg \left(U \le -1.468679264294656491917272404167659060091 \cdot 10^{122}\right):\\ \;\;\;\;\left(-2 \cdot J\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \sqrt{1 + {\left(\frac{\frac{U}{2 \cdot J}}{\cos \left(\frac{K}{2}\right)}\right)}^{2}}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(-2 \cdot J\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \frac{\sqrt{0.25} \cdot U}{J \cdot \cos \left(0.5 \cdot K\right)}\right)\\ \end{array}\]

Reproduce

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