Average Error: 17.1 → 16.5
Time: 28.0s
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 -6.176979890408271 \cdot 10^{-120}:\\ \;\;\;\;\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 5.081030145306157 \cdot 10^{-231}:\\ \;\;\;\;-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 -6.176979890408271 \cdot 10^{-120}:\\
\;\;\;\;\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 5.081030145306157 \cdot 10^{-231}:\\
\;\;\;\;-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 r3467828 = -2.0;
        double r3467829 = J;
        double r3467830 = r3467828 * r3467829;
        double r3467831 = K;
        double r3467832 = 2.0;
        double r3467833 = r3467831 / r3467832;
        double r3467834 = cos(r3467833);
        double r3467835 = r3467830 * r3467834;
        double r3467836 = 1.0;
        double r3467837 = U;
        double r3467838 = r3467832 * r3467829;
        double r3467839 = r3467838 * r3467834;
        double r3467840 = r3467837 / r3467839;
        double r3467841 = pow(r3467840, r3467832);
        double r3467842 = r3467836 + r3467841;
        double r3467843 = sqrt(r3467842);
        double r3467844 = r3467835 * r3467843;
        return r3467844;
}

double f(double J, double K, double U) {
        double r3467845 = J;
        double r3467846 = -6.176979890408271e-120;
        bool r3467847 = r3467845 <= r3467846;
        double r3467848 = 1.0;
        double r3467849 = U;
        double r3467850 = r3467845 + r3467845;
        double r3467851 = K;
        double r3467852 = 2.0;
        double r3467853 = r3467851 / r3467852;
        double r3467854 = cos(r3467853);
        double r3467855 = r3467850 * r3467854;
        double r3467856 = r3467849 / r3467855;
        double r3467857 = r3467856 * r3467856;
        double r3467858 = r3467848 + r3467857;
        double r3467859 = sqrt(r3467858);
        double r3467860 = -2.0;
        double r3467861 = r3467860 * r3467845;
        double r3467862 = r3467854 * r3467861;
        double r3467863 = r3467859 * r3467862;
        double r3467864 = 5.081030145306157e-231;
        bool r3467865 = r3467845 <= r3467864;
        double r3467866 = -r3467849;
        double r3467867 = r3467865 ? r3467866 : r3467863;
        double r3467868 = r3467847 ? r3467863 : r3467867;
        return r3467868;
}

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 < -6.176979890408271e-120 or 5.081030145306157e-231 < J

    1. Initial program 11.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. Simplified11.5

      \[\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 -6.176979890408271e-120 < J < 5.081030145306157e-231

    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.4

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;J \le -6.176979890408271 \cdot 10^{-120}:\\ \;\;\;\;\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 5.081030145306157 \cdot 10^{-231}:\\ \;\;\;\;-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 2019130 
(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)))))