Average Error: 16.9 → 16.3
Time: 26.2s
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 -2.9650807448169428 \cdot 10^{-167}:\\ \;\;\;\;\sqrt{1 + \frac{U}{\left(J + J\right) \cdot \cos \left(\frac{K}{2}\right)} \cdot \frac{U}{\left(J + J\right) \cdot \cos \left(\frac{K}{2}\right)}} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\ \mathbf{elif}\;J \le 1.149192901005293 \cdot 10^{-124}:\\ \;\;\;\;-U\\ \mathbf{else}:\\ \;\;\;\;\sqrt{1 + \frac{U}{\left(J + J\right) \cdot \cos \left(\frac{K}{2}\right)} \cdot \frac{U}{\left(J + J\right) \cdot \cos \left(\frac{K}{2}\right)}} \cdot \left(\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 -2.9650807448169428 \cdot 10^{-167}:\\
\;\;\;\;\sqrt{1 + \frac{U}{\left(J + J\right) \cdot \cos \left(\frac{K}{2}\right)} \cdot \frac{U}{\left(J + J\right) \cdot \cos \left(\frac{K}{2}\right)}} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\

\mathbf{elif}\;J \le 1.149192901005293 \cdot 10^{-124}:\\
\;\;\;\;-U\\

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

\end{array}
double f(double J, double K, double U) {
        double r4284373 = -2.0;
        double r4284374 = J;
        double r4284375 = r4284373 * r4284374;
        double r4284376 = K;
        double r4284377 = 2.0;
        double r4284378 = r4284376 / r4284377;
        double r4284379 = cos(r4284378);
        double r4284380 = r4284375 * r4284379;
        double r4284381 = 1.0;
        double r4284382 = U;
        double r4284383 = r4284377 * r4284374;
        double r4284384 = r4284383 * r4284379;
        double r4284385 = r4284382 / r4284384;
        double r4284386 = pow(r4284385, r4284377);
        double r4284387 = r4284381 + r4284386;
        double r4284388 = sqrt(r4284387);
        double r4284389 = r4284380 * r4284388;
        return r4284389;
}

double f(double J, double K, double U) {
        double r4284390 = J;
        double r4284391 = -2.9650807448169428e-167;
        bool r4284392 = r4284390 <= r4284391;
        double r4284393 = 1.0;
        double r4284394 = U;
        double r4284395 = r4284390 + r4284390;
        double r4284396 = K;
        double r4284397 = 2.0;
        double r4284398 = r4284396 / r4284397;
        double r4284399 = cos(r4284398);
        double r4284400 = r4284395 * r4284399;
        double r4284401 = r4284394 / r4284400;
        double r4284402 = r4284401 * r4284401;
        double r4284403 = r4284393 + r4284402;
        double r4284404 = sqrt(r4284403);
        double r4284405 = -2.0;
        double r4284406 = r4284405 * r4284390;
        double r4284407 = r4284399 * r4284406;
        double r4284408 = r4284404 * r4284407;
        double r4284409 = 1.149192901005293e-124;
        bool r4284410 = r4284390 <= r4284409;
        double r4284411 = -r4284394;
        double r4284412 = r4284410 ? r4284411 : r4284408;
        double r4284413 = r4284392 ? r4284408 : r4284412;
        return r4284413;
}

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 < -2.9650807448169428e-167 or 1.149192901005293e-124 < J

    1. Initial program 9.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. Simplified9.4

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

    if -2.9650807448169428e-167 < J < 1.149192901005293e-124

    1. Initial program 37.9

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

      \[\leadsto \color{blue}{\sqrt{\frac{U}{\left(J + J\right) \cdot \cos \left(\frac{K}{2}\right)} \cdot \frac{U}{\left(J + J\right) \cdot \cos \left(\frac{K}{2}\right)} + 1} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)}\]
    3. Taylor expanded around -inf 35.7

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;J \le -2.9650807448169428 \cdot 10^{-167}:\\ \;\;\;\;\sqrt{1 + \frac{U}{\left(J + J\right) \cdot \cos \left(\frac{K}{2}\right)} \cdot \frac{U}{\left(J + J\right) \cdot \cos \left(\frac{K}{2}\right)}} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\ \mathbf{elif}\;J \le 1.149192901005293 \cdot 10^{-124}:\\ \;\;\;\;-U\\ \mathbf{else}:\\ \;\;\;\;\sqrt{1 + \frac{U}{\left(J + J\right) \cdot \cos \left(\frac{K}{2}\right)} \cdot \frac{U}{\left(J + J\right) \cdot \cos \left(\frac{K}{2}\right)}} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\ \end{array}\]

Reproduce

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