Average Error: 17.6 → 8.5
Time: 21.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 -4.840558415743229 \cdot 10^{-282}:\\ \;\;\;\;\left(\cos \left(\frac{K}{2}\right) \cdot \mathsf{hypot}\left(1, \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)}\right)\right) \cdot \left(J \cdot -2\right)\\ \mathbf{elif}\;J \le 7.865937310037316 \cdot 10^{-210}:\\ \;\;\;\;-U\\ \mathbf{else}:\\ \;\;\;\;\left(\cos \left(\frac{K}{2}\right) \cdot \mathsf{hypot}\left(1, \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)}\right)\right) \cdot \left(J \cdot -2\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 -4.840558415743229 \cdot 10^{-282}:\\
\;\;\;\;\left(\cos \left(\frac{K}{2}\right) \cdot \mathsf{hypot}\left(1, \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)}\right)\right) \cdot \left(J \cdot -2\right)\\

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

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

\end{array}
double f(double J, double K, double U) {
        double r2071205 = -2.0;
        double r2071206 = J;
        double r2071207 = r2071205 * r2071206;
        double r2071208 = K;
        double r2071209 = 2.0;
        double r2071210 = r2071208 / r2071209;
        double r2071211 = cos(r2071210);
        double r2071212 = r2071207 * r2071211;
        double r2071213 = 1.0;
        double r2071214 = U;
        double r2071215 = r2071209 * r2071206;
        double r2071216 = r2071215 * r2071211;
        double r2071217 = r2071214 / r2071216;
        double r2071218 = pow(r2071217, r2071209);
        double r2071219 = r2071213 + r2071218;
        double r2071220 = sqrt(r2071219);
        double r2071221 = r2071212 * r2071220;
        return r2071221;
}

double f(double J, double K, double U) {
        double r2071222 = J;
        double r2071223 = -4.840558415743229e-282;
        bool r2071224 = r2071222 <= r2071223;
        double r2071225 = K;
        double r2071226 = 2.0;
        double r2071227 = r2071225 / r2071226;
        double r2071228 = cos(r2071227);
        double r2071229 = 1.0;
        double r2071230 = U;
        double r2071231 = r2071226 * r2071222;
        double r2071232 = r2071228 * r2071231;
        double r2071233 = r2071230 / r2071232;
        double r2071234 = hypot(r2071229, r2071233);
        double r2071235 = r2071228 * r2071234;
        double r2071236 = -2.0;
        double r2071237 = r2071222 * r2071236;
        double r2071238 = r2071235 * r2071237;
        double r2071239 = 7.865937310037316e-210;
        bool r2071240 = r2071222 <= r2071239;
        double r2071241 = -r2071230;
        double r2071242 = r2071240 ? r2071241 : r2071238;
        double r2071243 = r2071224 ? r2071238 : r2071242;
        return r2071243;
}

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 < -4.840558415743229e-282 or 7.865937310037316e-210 < J

    1. Initial program 14.7

      \[\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. Simplified5.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)}\]
    3. Using strategy rm
    4. Applied associate-*r*5.6

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

    if -4.840558415743229e-282 < J < 7.865937310037316e-210

    1. Initial program 42.3

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

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

      \[\leadsto \color{blue}{-1 \cdot U}\]
    4. Simplified32.9

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

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

Reproduce

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