Average Error: 17.6 → 8.2
Time: 26.5s
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 -6.5450850664377556 \cdot 10^{+243}:\\ \;\;\;\;-U\\ \mathbf{else}:\\ \;\;\;\;\mathsf{hypot}\left(1, \frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot 2\right) \cdot J}\right) \cdot \left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\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 -6.5450850664377556 \cdot 10^{+243}:\\
\;\;\;\;-U\\

\mathbf{else}:\\
\;\;\;\;\mathsf{hypot}\left(1, \frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot 2\right) \cdot J}\right) \cdot \left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right)\\

\end{array}
double f(double J, double K, double U) {
        double r5007618 = -2.0;
        double r5007619 = J;
        double r5007620 = r5007618 * r5007619;
        double r5007621 = K;
        double r5007622 = 2.0;
        double r5007623 = r5007621 / r5007622;
        double r5007624 = cos(r5007623);
        double r5007625 = r5007620 * r5007624;
        double r5007626 = 1.0;
        double r5007627 = U;
        double r5007628 = r5007622 * r5007619;
        double r5007629 = r5007628 * r5007624;
        double r5007630 = r5007627 / r5007629;
        double r5007631 = pow(r5007630, r5007622);
        double r5007632 = r5007626 + r5007631;
        double r5007633 = sqrt(r5007632);
        double r5007634 = r5007625 * r5007633;
        return r5007634;
}

double f(double J, double K, double U) {
        double r5007635 = U;
        double r5007636 = -6.5450850664377556e+243;
        bool r5007637 = r5007635 <= r5007636;
        double r5007638 = -r5007635;
        double r5007639 = 1.0;
        double r5007640 = K;
        double r5007641 = 2.0;
        double r5007642 = r5007640 / r5007641;
        double r5007643 = cos(r5007642);
        double r5007644 = r5007643 * r5007641;
        double r5007645 = J;
        double r5007646 = r5007644 * r5007645;
        double r5007647 = r5007635 / r5007646;
        double r5007648 = hypot(r5007639, r5007647);
        double r5007649 = -2.0;
        double r5007650 = r5007649 * r5007645;
        double r5007651 = r5007650 * r5007643;
        double r5007652 = r5007648 * r5007651;
        double r5007653 = r5007637 ? r5007638 : r5007652;
        return r5007653;
}

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 < -6.5450850664377556e+243

    1. Initial program 41.8

      \[\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. Simplified27.5

      \[\leadsto \color{blue}{\mathsf{hypot}\left(1, \frac{U}{\left(2 \cdot \cos \left(\frac{K}{2}\right)\right) \cdot J}\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)}\]
    3. Taylor expanded around inf 34.3

      \[\leadsto \color{blue}{-1 \cdot U}\]
    4. Simplified34.3

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

    if -6.5450850664377556e+243 < U

    1. Initial program 16.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. Simplified6.8

      \[\leadsto \color{blue}{\mathsf{hypot}\left(1, \frac{U}{\left(2 \cdot \cos \left(\frac{K}{2}\right)\right) \cdot J}\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification8.2

    \[\leadsto \begin{array}{l} \mathbf{if}\;U \le -6.5450850664377556 \cdot 10^{+243}:\\ \;\;\;\;-U\\ \mathbf{else}:\\ \;\;\;\;\mathsf{hypot}\left(1, \frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot 2\right) \cdot J}\right) \cdot \left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019162 +o rules:numerics
(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)))))