Average Error: 16.9 → 9.3
Time: 58.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 1.1426674860052404 \cdot 10^{-212}:\\ \;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(1, \left(\frac{U}{\left(2 \cdot \cos \left(\frac{K}{2}\right)\right) \cdot J}\right)\right)\\ \mathbf{elif}\;J \le 1.289623709276361 \cdot 10^{-130}:\\ \;\;\;\;-U\\ \mathbf{else}:\\ \;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(1, \left(\frac{U}{\left(2 \cdot \cos \left(\frac{K}{2}\right)\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 1.1426674860052404 \cdot 10^{-212}:\\
\;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(1, \left(\frac{U}{\left(2 \cdot \cos \left(\frac{K}{2}\right)\right) \cdot J}\right)\right)\\

\mathbf{elif}\;J \le 1.289623709276361 \cdot 10^{-130}:\\
\;\;\;\;-U\\

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

\end{array}
double f(double J, double K, double U) {
        double r12512164 = -2.0;
        double r12512165 = J;
        double r12512166 = r12512164 * r12512165;
        double r12512167 = K;
        double r12512168 = 2.0;
        double r12512169 = r12512167 / r12512168;
        double r12512170 = cos(r12512169);
        double r12512171 = r12512166 * r12512170;
        double r12512172 = 1.0;
        double r12512173 = U;
        double r12512174 = r12512168 * r12512165;
        double r12512175 = r12512174 * r12512170;
        double r12512176 = r12512173 / r12512175;
        double r12512177 = pow(r12512176, r12512168);
        double r12512178 = r12512172 + r12512177;
        double r12512179 = sqrt(r12512178);
        double r12512180 = r12512171 * r12512179;
        return r12512180;
}

double f(double J, double K, double U) {
        double r12512181 = J;
        double r12512182 = 1.1426674860052404e-212;
        bool r12512183 = r12512181 <= r12512182;
        double r12512184 = -2.0;
        double r12512185 = r12512184 * r12512181;
        double r12512186 = K;
        double r12512187 = 2.0;
        double r12512188 = r12512186 / r12512187;
        double r12512189 = cos(r12512188);
        double r12512190 = r12512185 * r12512189;
        double r12512191 = 1.0;
        double r12512192 = U;
        double r12512193 = r12512187 * r12512189;
        double r12512194 = r12512193 * r12512181;
        double r12512195 = r12512192 / r12512194;
        double r12512196 = hypot(r12512191, r12512195);
        double r12512197 = r12512190 * r12512196;
        double r12512198 = 1.289623709276361e-130;
        bool r12512199 = r12512181 <= r12512198;
        double r12512200 = -r12512192;
        double r12512201 = r12512199 ? r12512200 : r12512197;
        double r12512202 = r12512183 ? r12512197 : r12512201;
        return r12512202;
}

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 < 1.1426674860052404e-212 or 1.289623709276361e-130 < J

    1. Initial program 15.8

      \[\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. Simplified7.3

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

    if 1.1426674860052404e-212 < J < 1.289623709276361e-130

    1. Initial program 32.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. Simplified17.3

      \[\leadsto \color{blue}{\mathsf{hypot}\left(1, \left(\frac{U}{J \cdot \left(\cos \left(\frac{K}{2}\right) \cdot 2\right)}\right)\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)}\]
    3. Taylor expanded around inf 38.2

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

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

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

Reproduce

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