Average Error: 17.2 → 8.5
Time: 49.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 2.123088257299218 \cdot 10^{+195}:\\ \;\;\;\;\left(\left(J \cdot -2\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(1, \left(\frac{U}{J \cdot \left(2 \cdot \cos \left(\frac{K}{2}\right)\right)}\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}\;U \le 2.123088257299218 \cdot 10^{+195}:\\
\;\;\;\;\left(\left(J \cdot -2\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(1, \left(\frac{U}{J \cdot \left(2 \cdot \cos \left(\frac{K}{2}\right)\right)}\right)\right)\\

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

\end{array}
double f(double J, double K, double U) {
        double r29749579 = -2.0;
        double r29749580 = J;
        double r29749581 = r29749579 * r29749580;
        double r29749582 = K;
        double r29749583 = 2.0;
        double r29749584 = r29749582 / r29749583;
        double r29749585 = cos(r29749584);
        double r29749586 = r29749581 * r29749585;
        double r29749587 = 1.0;
        double r29749588 = U;
        double r29749589 = r29749583 * r29749580;
        double r29749590 = r29749589 * r29749585;
        double r29749591 = r29749588 / r29749590;
        double r29749592 = pow(r29749591, r29749583);
        double r29749593 = r29749587 + r29749592;
        double r29749594 = sqrt(r29749593);
        double r29749595 = r29749586 * r29749594;
        return r29749595;
}

double f(double J, double K, double U) {
        double r29749596 = U;
        double r29749597 = 2.123088257299218e+195;
        bool r29749598 = r29749596 <= r29749597;
        double r29749599 = J;
        double r29749600 = -2.0;
        double r29749601 = r29749599 * r29749600;
        double r29749602 = K;
        double r29749603 = 2.0;
        double r29749604 = r29749602 / r29749603;
        double r29749605 = cos(r29749604);
        double r29749606 = r29749601 * r29749605;
        double r29749607 = 1.0;
        double r29749608 = r29749603 * r29749605;
        double r29749609 = r29749599 * r29749608;
        double r29749610 = r29749596 / r29749609;
        double r29749611 = hypot(r29749607, r29749610);
        double r29749612 = r29749606 * r29749611;
        double r29749613 = -r29749596;
        double r29749614 = r29749598 ? r29749612 : r29749613;
        return r29749614;
}

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 < 2.123088257299218e+195

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

      \[\leadsto \color{blue}{\mathsf{hypot}\left(1, \left(\frac{U}{J \cdot \left(\cos \left(\frac{K}{2}\right) \cdot 2\right)}\right)\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)}\]

    if 2.123088257299218e+195 < U

    1. Initial program 40.0

      \[\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. Simplified23.7

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

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

      \[\leadsto \color{blue}{-U}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification8.5

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

Reproduce

herbie shell --seed 2019124 +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)))))