Average Error: 17.9 → 8.0
Time: 20.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}\;J \le -5.000305540524894 \cdot 10^{-282}:\\ \;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(1, \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)}\right)\\ \mathbf{elif}\;J \le -1.2687631742535287 \cdot 10^{-307}:\\ \;\;\;\;-U\\ \mathbf{else}:\\ \;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(1, \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \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 -5.000305540524894 \cdot 10^{-282}:\\
\;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(1, \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)}\right)\\

\mathbf{elif}\;J \le -1.2687631742535287 \cdot 10^{-307}:\\
\;\;\;\;-U\\

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

\end{array}
double f(double J, double K, double U) {
        double r2117213 = -2.0;
        double r2117214 = J;
        double r2117215 = r2117213 * r2117214;
        double r2117216 = K;
        double r2117217 = 2.0;
        double r2117218 = r2117216 / r2117217;
        double r2117219 = cos(r2117218);
        double r2117220 = r2117215 * r2117219;
        double r2117221 = 1.0;
        double r2117222 = U;
        double r2117223 = r2117217 * r2117214;
        double r2117224 = r2117223 * r2117219;
        double r2117225 = r2117222 / r2117224;
        double r2117226 = pow(r2117225, r2117217);
        double r2117227 = r2117221 + r2117226;
        double r2117228 = sqrt(r2117227);
        double r2117229 = r2117220 * r2117228;
        return r2117229;
}

double f(double J, double K, double U) {
        double r2117230 = J;
        double r2117231 = -5.000305540524894e-282;
        bool r2117232 = r2117230 <= r2117231;
        double r2117233 = -2.0;
        double r2117234 = r2117233 * r2117230;
        double r2117235 = K;
        double r2117236 = 2.0;
        double r2117237 = r2117235 / r2117236;
        double r2117238 = cos(r2117237);
        double r2117239 = r2117234 * r2117238;
        double r2117240 = 1.0;
        double r2117241 = U;
        double r2117242 = r2117236 * r2117230;
        double r2117243 = r2117238 * r2117242;
        double r2117244 = r2117241 / r2117243;
        double r2117245 = hypot(r2117240, r2117244);
        double r2117246 = r2117239 * r2117245;
        double r2117247 = -1.2687631742535287e-307;
        bool r2117248 = r2117230 <= r2117247;
        double r2117249 = -r2117241;
        double r2117250 = r2117248 ? r2117249 : r2117246;
        double r2117251 = r2117232 ? r2117246 : r2117250;
        return r2117251;
}

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 < -5.000305540524894e-282 or -1.2687631742535287e-307 < J

    1. Initial program 17.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. Simplified7.6

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

    if -5.000305540524894e-282 < J < -1.2687631742535287e-307

    1. Initial program 46.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. Simplified31.5

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

      \[\leadsto \color{blue}{-1 \cdot U}\]
    4. Simplified23.7

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

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

Reproduce

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