Average Error: 17.8 → 16.3
Time: 28.9s
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 -8.069925597012031999055507457126900702342 \cdot 10^{-197}:\\ \;\;\;\;\left(\left(J \cdot \cos \left(K \cdot 0.5\right)\right) \cdot -2\right) \cdot \sqrt{1 + {\left(\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2}\right)}^{2}}\\ \mathbf{elif}\;J \le 1.427887367569266326768928126263287999121 \cdot 10^{-201}:\\ \;\;\;\;-2 \cdot \left(U \cdot \sqrt{0.25}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(J \cdot \cos \left(K \cdot 0.5\right)\right) \cdot -2\right) \cdot \sqrt{1 + {\left(\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2}\right)}^{2}}\\ \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 -8.069925597012031999055507457126900702342 \cdot 10^{-197}:\\
\;\;\;\;\left(\left(J \cdot \cos \left(K \cdot 0.5\right)\right) \cdot -2\right) \cdot \sqrt{1 + {\left(\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2}\right)}^{2}}\\

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

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

\end{array}
double f(double J, double K, double U) {
        double r4597819 = -2.0;
        double r4597820 = J;
        double r4597821 = r4597819 * r4597820;
        double r4597822 = K;
        double r4597823 = 2.0;
        double r4597824 = r4597822 / r4597823;
        double r4597825 = cos(r4597824);
        double r4597826 = r4597821 * r4597825;
        double r4597827 = 1.0;
        double r4597828 = U;
        double r4597829 = r4597823 * r4597820;
        double r4597830 = r4597829 * r4597825;
        double r4597831 = r4597828 / r4597830;
        double r4597832 = pow(r4597831, r4597823);
        double r4597833 = r4597827 + r4597832;
        double r4597834 = sqrt(r4597833);
        double r4597835 = r4597826 * r4597834;
        return r4597835;
}

double f(double J, double K, double U) {
        double r4597836 = J;
        double r4597837 = -8.069925597012032e-197;
        bool r4597838 = r4597836 <= r4597837;
        double r4597839 = K;
        double r4597840 = 0.5;
        double r4597841 = r4597839 * r4597840;
        double r4597842 = cos(r4597841);
        double r4597843 = r4597836 * r4597842;
        double r4597844 = -2.0;
        double r4597845 = r4597843 * r4597844;
        double r4597846 = 1.0;
        double r4597847 = U;
        double r4597848 = 2.0;
        double r4597849 = r4597839 / r4597848;
        double r4597850 = cos(r4597849);
        double r4597851 = r4597850 * r4597836;
        double r4597852 = r4597851 * r4597848;
        double r4597853 = r4597847 / r4597852;
        double r4597854 = pow(r4597853, r4597848);
        double r4597855 = r4597846 + r4597854;
        double r4597856 = sqrt(r4597855);
        double r4597857 = r4597845 * r4597856;
        double r4597858 = 1.4278873675692663e-201;
        bool r4597859 = r4597836 <= r4597858;
        double r4597860 = 0.25;
        double r4597861 = sqrt(r4597860);
        double r4597862 = r4597847 * r4597861;
        double r4597863 = r4597844 * r4597862;
        double r4597864 = r4597859 ? r4597863 : r4597857;
        double r4597865 = r4597838 ? r4597857 : r4597864;
        return r4597865;
}

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 < -8.069925597012032e-197 or 1.4278873675692663e-201 < J

    1. Initial program 12.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. Simplified12.8

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

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

    if -8.069925597012032e-197 < J < 1.4278873675692663e-201

    1. Initial program 41.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. Simplified41.7

      \[\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.8

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;J \le -8.069925597012031999055507457126900702342 \cdot 10^{-197}:\\ \;\;\;\;\left(\left(J \cdot \cos \left(K \cdot 0.5\right)\right) \cdot -2\right) \cdot \sqrt{1 + {\left(\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2}\right)}^{2}}\\ \mathbf{elif}\;J \le 1.427887367569266326768928126263287999121 \cdot 10^{-201}:\\ \;\;\;\;-2 \cdot \left(U \cdot \sqrt{0.25}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(J \cdot \cos \left(K \cdot 0.5\right)\right) \cdot -2\right) \cdot \sqrt{1 + {\left(\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot J\right) \cdot 2}\right)}^{2}}\\ \end{array}\]

Reproduce

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