Average Error: 17.1 → 17.3
Time: 2.6m
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 3.6074695776793314 \cdot 10^{-267}:\\ \;\;\;\;\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot \left(-2 \cdot \sqrt{1 + \frac{U}{2 \cdot \left(\cos \left(\frac{K}{2}\right) \cdot J\right)} \cdot \frac{U}{2 \cdot \left(\cos \left(\frac{K}{2}\right) \cdot J\right)}}\right)\\ \mathbf{elif}\;J \le 1.9290592883268698 \cdot 10^{-140}:\\ \;\;\;\;-U\\ \mathbf{else}:\\ \;\;\;\;\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot \left(-2 \cdot \sqrt{1 + \frac{U}{2 \cdot \left(\cos \left(\frac{K}{2}\right) \cdot J\right)} \cdot \frac{U}{2 \cdot \left(\cos \left(\frac{K}{2}\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 3.6074695776793314 \cdot 10^{-267}:\\
\;\;\;\;\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot \left(-2 \cdot \sqrt{1 + \frac{U}{2 \cdot \left(\cos \left(\frac{K}{2}\right) \cdot J\right)} \cdot \frac{U}{2 \cdot \left(\cos \left(\frac{K}{2}\right) \cdot J\right)}}\right)\\

\mathbf{elif}\;J \le 1.9290592883268698 \cdot 10^{-140}:\\
\;\;\;\;-U\\

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

\end{array}
double f(double J, double K, double U) {
        double r24579707 = -2.0;
        double r24579708 = J;
        double r24579709 = r24579707 * r24579708;
        double r24579710 = K;
        double r24579711 = 2.0;
        double r24579712 = r24579710 / r24579711;
        double r24579713 = cos(r24579712);
        double r24579714 = r24579709 * r24579713;
        double r24579715 = 1.0;
        double r24579716 = U;
        double r24579717 = r24579711 * r24579708;
        double r24579718 = r24579717 * r24579713;
        double r24579719 = r24579716 / r24579718;
        double r24579720 = pow(r24579719, r24579711);
        double r24579721 = r24579715 + r24579720;
        double r24579722 = sqrt(r24579721);
        double r24579723 = r24579714 * r24579722;
        return r24579723;
}

double f(double J, double K, double U) {
        double r24579724 = J;
        double r24579725 = 3.6074695776793314e-267;
        bool r24579726 = r24579724 <= r24579725;
        double r24579727 = K;
        double r24579728 = 2.0;
        double r24579729 = r24579727 / r24579728;
        double r24579730 = cos(r24579729);
        double r24579731 = r24579730 * r24579724;
        double r24579732 = -2.0;
        double r24579733 = 1.0;
        double r24579734 = U;
        double r24579735 = r24579728 * r24579731;
        double r24579736 = r24579734 / r24579735;
        double r24579737 = r24579736 * r24579736;
        double r24579738 = r24579733 + r24579737;
        double r24579739 = sqrt(r24579738);
        double r24579740 = r24579732 * r24579739;
        double r24579741 = r24579731 * r24579740;
        double r24579742 = 1.9290592883268698e-140;
        bool r24579743 = r24579724 <= r24579742;
        double r24579744 = -r24579734;
        double r24579745 = r24579743 ? r24579744 : r24579741;
        double r24579746 = r24579726 ? r24579741 : r24579745;
        return r24579746;
}

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 < 3.6074695776793314e-267 or 1.9290592883268698e-140 < J

    1. Initial program 14.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. Simplified14.9

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

    if 3.6074695776793314e-267 < J < 1.9290592883268698e-140

    1. Initial program 36.0

      \[\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. Simplified36.0

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

      \[\leadsto \color{blue}{-1 \cdot U}\]
    4. Simplified37.5

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

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

Reproduce

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