Average Error: 17.5 → 16.3
Time: 43.1s
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.7365939269127396 \cdot 10^{-172}:\\ \;\;\;\;\sqrt{1 + \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)} \cdot \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)}} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\ \mathbf{elif}\;J \le 1.2100371248519592 \cdot 10^{-256}:\\ \;\;\;\;-U\\ \mathbf{else}:\\ \;\;\;\;\sqrt{1 + \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)} \cdot \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\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 -1.7365939269127396 \cdot 10^{-172}:\\
\;\;\;\;\sqrt{1 + \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)} \cdot \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)}} \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)\\

\mathbf{elif}\;J \le 1.2100371248519592 \cdot 10^{-256}:\\
\;\;\;\;-U\\

\mathbf{else}:\\
\;\;\;\;\sqrt{1 + \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\right)} \cdot \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(2 \cdot J\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 r5791789 = -2.0;
        double r5791790 = J;
        double r5791791 = r5791789 * r5791790;
        double r5791792 = K;
        double r5791793 = 2.0;
        double r5791794 = r5791792 / r5791793;
        double r5791795 = cos(r5791794);
        double r5791796 = r5791791 * r5791795;
        double r5791797 = 1.0;
        double r5791798 = U;
        double r5791799 = r5791793 * r5791790;
        double r5791800 = r5791799 * r5791795;
        double r5791801 = r5791798 / r5791800;
        double r5791802 = pow(r5791801, r5791793);
        double r5791803 = r5791797 + r5791802;
        double r5791804 = sqrt(r5791803);
        double r5791805 = r5791796 * r5791804;
        return r5791805;
}

double f(double J, double K, double U) {
        double r5791806 = J;
        double r5791807 = -1.7365939269127396e-172;
        bool r5791808 = r5791806 <= r5791807;
        double r5791809 = 1.0;
        double r5791810 = U;
        double r5791811 = K;
        double r5791812 = 2.0;
        double r5791813 = r5791811 / r5791812;
        double r5791814 = cos(r5791813);
        double r5791815 = r5791812 * r5791806;
        double r5791816 = r5791814 * r5791815;
        double r5791817 = r5791810 / r5791816;
        double r5791818 = r5791817 * r5791817;
        double r5791819 = r5791809 + r5791818;
        double r5791820 = sqrt(r5791819);
        double r5791821 = -2.0;
        double r5791822 = r5791821 * r5791806;
        double r5791823 = r5791814 * r5791822;
        double r5791824 = r5791820 * r5791823;
        double r5791825 = 1.2100371248519592e-256;
        bool r5791826 = r5791806 <= r5791825;
        double r5791827 = -r5791810;
        double r5791828 = r5791826 ? r5791827 : r5791824;
        double r5791829 = r5791808 ? r5791824 : r5791828;
        return r5791829;
}

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.7365939269127396e-172 or 1.2100371248519592e-256 < J

    1. Initial program 13.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. Simplified13.0

      \[\leadsto \color{blue}{\sqrt{\frac{U}{\left(J \cdot 2\right) \cdot \cos \left(\frac{K}{2}\right)} \cdot \frac{U}{\left(J \cdot 2\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 -1.7365939269127396e-172 < J < 1.2100371248519592e-256

    1. Initial program 40.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. Simplified40.9

      \[\leadsto \color{blue}{\sqrt{\frac{U}{\left(J \cdot 2\right) \cdot \cos \left(\frac{K}{2}\right)} \cdot \frac{U}{\left(J \cdot 2\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 33.6

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

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

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

Reproduce

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