Average Error: 18.4 → 13.5
Time: 8.4s
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}\;\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}} = -\infty:\\ \;\;\;\;\left(-2 \cdot J\right) \cdot \frac{\sqrt{0.25} \cdot U}{J}\\ \mathbf{elif}\;\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}} \le 7.43654545905667358 \cdot 10^{304}:\\ \;\;\;\;\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}}\\ \mathbf{else}:\\ \;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \frac{\sqrt{0.25} \cdot U}{J \cdot \cos \left(0.5 \cdot K\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}\;\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}} = -\infty:\\
\;\;\;\;\left(-2 \cdot J\right) \cdot \frac{\sqrt{0.25} \cdot U}{J}\\

\mathbf{elif}\;\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}} \le 7.43654545905667358 \cdot 10^{304}:\\
\;\;\;\;\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}}\\

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

\end{array}
double f(double J, double K, double U) {
        double r162188 = -2.0;
        double r162189 = J;
        double r162190 = r162188 * r162189;
        double r162191 = K;
        double r162192 = 2.0;
        double r162193 = r162191 / r162192;
        double r162194 = cos(r162193);
        double r162195 = r162190 * r162194;
        double r162196 = 1.0;
        double r162197 = U;
        double r162198 = r162192 * r162189;
        double r162199 = r162198 * r162194;
        double r162200 = r162197 / r162199;
        double r162201 = pow(r162200, r162192);
        double r162202 = r162196 + r162201;
        double r162203 = sqrt(r162202);
        double r162204 = r162195 * r162203;
        return r162204;
}

double f(double J, double K, double U) {
        double r162205 = -2.0;
        double r162206 = J;
        double r162207 = r162205 * r162206;
        double r162208 = K;
        double r162209 = 2.0;
        double r162210 = r162208 / r162209;
        double r162211 = cos(r162210);
        double r162212 = r162207 * r162211;
        double r162213 = 1.0;
        double r162214 = U;
        double r162215 = r162209 * r162206;
        double r162216 = r162215 * r162211;
        double r162217 = r162214 / r162216;
        double r162218 = pow(r162217, r162209);
        double r162219 = r162213 + r162218;
        double r162220 = sqrt(r162219);
        double r162221 = r162212 * r162220;
        double r162222 = -inf.0;
        bool r162223 = r162221 <= r162222;
        double r162224 = 0.25;
        double r162225 = sqrt(r162224);
        double r162226 = r162225 * r162214;
        double r162227 = r162226 / r162206;
        double r162228 = r162207 * r162227;
        double r162229 = 7.436545459056674e+304;
        bool r162230 = r162221 <= r162229;
        double r162231 = 0.5;
        double r162232 = r162231 * r162208;
        double r162233 = cos(r162232);
        double r162234 = r162206 * r162233;
        double r162235 = r162226 / r162234;
        double r162236 = r162212 * r162235;
        double r162237 = r162230 ? r162221 : r162236;
        double r162238 = r162223 ? r162228 : r162237;
        return r162238;
}

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 3 regimes
  2. if (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))) < -inf.0

    1. Initial program 64.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. Using strategy rm
    3. Applied associate-*l*64.0

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

      \[\leadsto \left(-2 \cdot J\right) \cdot \color{blue}{\frac{\sqrt{0.25} \cdot U}{J}}\]

    if -inf.0 < (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))) < 7.436545459056674e+304

    1. Initial program 0.1

      \[\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}}\]

    if 7.436545459056674e+304 < (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0))))

    1. Initial program 63.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. Taylor expanded around inf 45.9

      \[\leadsto \left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \color{blue}{\frac{\sqrt{0.25} \cdot U}{J \cdot \cos \left(0.5 \cdot K\right)}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification13.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;\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}} = -\infty:\\ \;\;\;\;\left(-2 \cdot J\right) \cdot \frac{\sqrt{0.25} \cdot U}{J}\\ \mathbf{elif}\;\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}} \le 7.43654545905667358 \cdot 10^{304}:\\ \;\;\;\;\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}}\\ \mathbf{else}:\\ \;\;\;\;\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \frac{\sqrt{0.25} \cdot U}{J \cdot \cos \left(0.5 \cdot K\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2020035 
(FPCore (J K U)
  :name "Maksimov and Kolovsky, Equation (3)"
  :precision binary64
  (* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))