Average Error: 16.9 → 8.4
Time: 34.7s
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 9.480099451634948 \cdot 10^{-307}:\\ \;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(1, \left(\frac{U}{\left(2 \cdot \cos \left(\frac{K}{2}\right)\right) \cdot J}\right)\right)\\ \mathbf{elif}\;J \le 5.462332884805273 \cdot 10^{-210}:\\ \;\;\;\;-U\\ \mathbf{else}:\\ \;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(1, \left(\frac{U}{\left(2 \cdot \cos \left(\frac{K}{2}\right)\right) \cdot J}\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}\;J \le 9.480099451634948 \cdot 10^{-307}:\\
\;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(1, \left(\frac{U}{\left(2 \cdot \cos \left(\frac{K}{2}\right)\right) \cdot J}\right)\right)\\

\mathbf{elif}\;J \le 5.462332884805273 \cdot 10^{-210}:\\
\;\;\;\;-U\\

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

\end{array}
double f(double J, double K, double U) {
        double r4206082 = -2.0;
        double r4206083 = J;
        double r4206084 = r4206082 * r4206083;
        double r4206085 = K;
        double r4206086 = 2.0;
        double r4206087 = r4206085 / r4206086;
        double r4206088 = cos(r4206087);
        double r4206089 = r4206084 * r4206088;
        double r4206090 = 1.0;
        double r4206091 = U;
        double r4206092 = r4206086 * r4206083;
        double r4206093 = r4206092 * r4206088;
        double r4206094 = r4206091 / r4206093;
        double r4206095 = pow(r4206094, r4206086);
        double r4206096 = r4206090 + r4206095;
        double r4206097 = sqrt(r4206096);
        double r4206098 = r4206089 * r4206097;
        return r4206098;
}

double f(double J, double K, double U) {
        double r4206099 = J;
        double r4206100 = 9.480099451634948e-307;
        bool r4206101 = r4206099 <= r4206100;
        double r4206102 = -2.0;
        double r4206103 = r4206102 * r4206099;
        double r4206104 = K;
        double r4206105 = 2.0;
        double r4206106 = r4206104 / r4206105;
        double r4206107 = cos(r4206106);
        double r4206108 = r4206103 * r4206107;
        double r4206109 = 1.0;
        double r4206110 = U;
        double r4206111 = r4206105 * r4206107;
        double r4206112 = r4206111 * r4206099;
        double r4206113 = r4206110 / r4206112;
        double r4206114 = hypot(r4206109, r4206113);
        double r4206115 = r4206108 * r4206114;
        double r4206116 = 5.462332884805273e-210;
        bool r4206117 = r4206099 <= r4206116;
        double r4206118 = -r4206110;
        double r4206119 = r4206117 ? r4206118 : r4206115;
        double r4206120 = r4206101 ? r4206115 : r4206119;
        return r4206120;
}

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 < 9.480099451634948e-307 or 5.462332884805273e-210 < J

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

      \[\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 9.480099451634948e-307 < J < 5.462332884805273e-210

    1. Initial program 41.4

      \[\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. Simplified25.9

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

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

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

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

Reproduce

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