Average Error: 17.8 → 8.7
Time: 33.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 -2.273015951622964398513895289562959420814 \cdot 10^{-222}:\\ \;\;\;\;\mathsf{hypot}\left({\left(\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2}\right)}^{\left(\frac{2}{2}\right)}, \sqrt{1}\right) \cdot \left(\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot -2\right)\\ \mathbf{elif}\;J \le 3.849360312491251162092240151264481695399 \cdot 10^{-202}:\\ \;\;\;\;-2 \cdot \left(U \cdot \sqrt{0.25}\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{hypot}\left({\left(\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2}\right)}^{\left(\frac{2}{2}\right)}, \sqrt{1}\right) \cdot \left(\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \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 -2.273015951622964398513895289562959420814 \cdot 10^{-222}:\\
\;\;\;\;\mathsf{hypot}\left({\left(\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2}\right)}^{\left(\frac{2}{2}\right)}, \sqrt{1}\right) \cdot \left(\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot -2\right)\\

\mathbf{elif}\;J \le 3.849360312491251162092240151264481695399 \cdot 10^{-202}:\\
\;\;\;\;-2 \cdot \left(U \cdot \sqrt{0.25}\right)\\

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

\end{array}
double f(double J, double K, double U) {
        double r6550535 = -2.0;
        double r6550536 = J;
        double r6550537 = r6550535 * r6550536;
        double r6550538 = K;
        double r6550539 = 2.0;
        double r6550540 = r6550538 / r6550539;
        double r6550541 = cos(r6550540);
        double r6550542 = r6550537 * r6550541;
        double r6550543 = 1.0;
        double r6550544 = U;
        double r6550545 = r6550539 * r6550536;
        double r6550546 = r6550545 * r6550541;
        double r6550547 = r6550544 / r6550546;
        double r6550548 = pow(r6550547, r6550539);
        double r6550549 = r6550543 + r6550548;
        double r6550550 = sqrt(r6550549);
        double r6550551 = r6550542 * r6550550;
        return r6550551;
}

double f(double J, double K, double U) {
        double r6550552 = J;
        double r6550553 = -2.2730159516229644e-222;
        bool r6550554 = r6550552 <= r6550553;
        double r6550555 = U;
        double r6550556 = K;
        double r6550557 = 2.0;
        double r6550558 = r6550556 / r6550557;
        double r6550559 = cos(r6550558);
        double r6550560 = r6550559 * r6550552;
        double r6550561 = r6550560 * r6550557;
        double r6550562 = r6550555 / r6550561;
        double r6550563 = 2.0;
        double r6550564 = r6550557 / r6550563;
        double r6550565 = pow(r6550562, r6550564);
        double r6550566 = 1.0;
        double r6550567 = sqrt(r6550566);
        double r6550568 = hypot(r6550565, r6550567);
        double r6550569 = -2.0;
        double r6550570 = r6550560 * r6550569;
        double r6550571 = r6550568 * r6550570;
        double r6550572 = 3.849360312491251e-202;
        bool r6550573 = r6550552 <= r6550572;
        double r6550574 = 0.25;
        double r6550575 = sqrt(r6550574);
        double r6550576 = r6550555 * r6550575;
        double r6550577 = r6550569 * r6550576;
        double r6550578 = r6550573 ? r6550577 : r6550571;
        double r6550579 = r6550554 ? r6550571 : r6550578;
        return r6550579;
}

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.2730159516229644e-222 or 3.849360312491251e-202 < J

    1. Initial program 13.5

      \[\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. Simplified13.4

      \[\leadsto \color{blue}{\sqrt{{\left(\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2}\right)}^{2} + 1} \cdot \left(\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot -2\right)}\]
    3. Using strategy rm
    4. Applied add-sqr-sqrt13.4

      \[\leadsto \sqrt{{\left(\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2}\right)}^{2} + \color{blue}{\sqrt{1} \cdot \sqrt{1}}} \cdot \left(\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot -2\right)\]
    5. Applied sqr-pow13.4

      \[\leadsto \sqrt{\color{blue}{{\left(\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2}\right)}^{\left(\frac{2}{2}\right)} \cdot {\left(\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2}\right)}^{\left(\frac{2}{2}\right)}} + \sqrt{1} \cdot \sqrt{1}} \cdot \left(\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot -2\right)\]
    6. Applied hypot-def4.6

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

    if -2.2730159516229644e-222 < J < 3.849360312491251e-202

    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. Simplified42.3

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

      \[\leadsto \color{blue}{-2 \cdot \left(\sqrt{0.25} \cdot U\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification8.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;J \le -2.273015951622964398513895289562959420814 \cdot 10^{-222}:\\ \;\;\;\;\mathsf{hypot}\left({\left(\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2}\right)}^{\left(\frac{2}{2}\right)}, \sqrt{1}\right) \cdot \left(\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot -2\right)\\ \mathbf{elif}\;J \le 3.849360312491251162092240151264481695399 \cdot 10^{-202}:\\ \;\;\;\;-2 \cdot \left(U \cdot \sqrt{0.25}\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{hypot}\left({\left(\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2}\right)}^{\left(\frac{2}{2}\right)}, \sqrt{1}\right) \cdot \left(\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot -2\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019170 +o rules:numerics
(FPCore (J K U)
  :name "Maksimov and Kolovsky, Equation (3)"
  (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))))