Average Error: 17.3 → 7.9
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}\;J \le -1.0416216881156113 \cdot 10^{-187}:\\ \;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(1, \frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot 2\right) \cdot J}\right)\\ \mathbf{elif}\;J \le -4.963799731811966 \cdot 10^{-224}:\\ \;\;\;\;-U\\ \mathbf{else}:\\ \;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(1, \frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot 2\right) \cdot J}\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}\;J \le -1.0416216881156113 \cdot 10^{-187}:\\
\;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(1, \frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot 2\right) \cdot J}\right)\\

\mathbf{elif}\;J \le -4.963799731811966 \cdot 10^{-224}:\\
\;\;\;\;-U\\

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

\end{array}
double f(double J, double K, double U) {
        double r6208369 = -2.0;
        double r6208370 = J;
        double r6208371 = r6208369 * r6208370;
        double r6208372 = K;
        double r6208373 = 2.0;
        double r6208374 = r6208372 / r6208373;
        double r6208375 = cos(r6208374);
        double r6208376 = r6208371 * r6208375;
        double r6208377 = 1.0;
        double r6208378 = U;
        double r6208379 = r6208373 * r6208370;
        double r6208380 = r6208379 * r6208375;
        double r6208381 = r6208378 / r6208380;
        double r6208382 = pow(r6208381, r6208373);
        double r6208383 = r6208377 + r6208382;
        double r6208384 = sqrt(r6208383);
        double r6208385 = r6208376 * r6208384;
        return r6208385;
}

double f(double J, double K, double U) {
        double r6208386 = J;
        double r6208387 = -1.0416216881156113e-187;
        bool r6208388 = r6208386 <= r6208387;
        double r6208389 = -2.0;
        double r6208390 = r6208389 * r6208386;
        double r6208391 = K;
        double r6208392 = 2.0;
        double r6208393 = r6208391 / r6208392;
        double r6208394 = cos(r6208393);
        double r6208395 = r6208390 * r6208394;
        double r6208396 = 1.0;
        double r6208397 = U;
        double r6208398 = r6208394 * r6208392;
        double r6208399 = r6208398 * r6208386;
        double r6208400 = r6208397 / r6208399;
        double r6208401 = hypot(r6208396, r6208400);
        double r6208402 = r6208395 * r6208401;
        double r6208403 = -4.963799731811966e-224;
        bool r6208404 = r6208386 <= r6208403;
        double r6208405 = -r6208397;
        double r6208406 = r6208404 ? r6208405 : r6208402;
        double r6208407 = r6208388 ? r6208402 : r6208406;
        return r6208407;
}

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 J < -1.0416216881156113e-187 or -4.963799731811966e-224 < J

    1. Initial program 16.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. Simplified7.0

      \[\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)}\]

    if -1.0416216881156113e-187 < J < -4.963799731811966e-224

    1. Initial program 34.6

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

      \[\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 40.0

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

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

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

Reproduce

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