Average Error: 17.7 → 18.9
Time: 22.8s
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}\;U \le -3.440264728937229717785528289539985872593 \cdot 10^{213} \lor \neg \left(U \le -1.468679264294656491917272404167659060091 \cdot 10^{122}\right):\\ \;\;\;\;\left(-2 \cdot J\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \sqrt{1 + {\left(\frac{\frac{U}{2 \cdot J}}{\cos \left(\frac{K}{2}\right)}\right)}^{2}}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(-2 \cdot J\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \frac{\sqrt{0.25} \cdot U}{J \cdot \cos \left(0.5 \cdot K\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}\;U \le -3.440264728937229717785528289539985872593 \cdot 10^{213} \lor \neg \left(U \le -1.468679264294656491917272404167659060091 \cdot 10^{122}\right):\\
\;\;\;\;\left(-2 \cdot J\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \sqrt{1 + {\left(\frac{\frac{U}{2 \cdot J}}{\cos \left(\frac{K}{2}\right)}\right)}^{2}}\right)\\

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

\end{array}
double f(double J, double K, double U) {
        double r110028 = -2.0;
        double r110029 = J;
        double r110030 = r110028 * r110029;
        double r110031 = K;
        double r110032 = 2.0;
        double r110033 = r110031 / r110032;
        double r110034 = cos(r110033);
        double r110035 = r110030 * r110034;
        double r110036 = 1.0;
        double r110037 = U;
        double r110038 = r110032 * r110029;
        double r110039 = r110038 * r110034;
        double r110040 = r110037 / r110039;
        double r110041 = pow(r110040, r110032);
        double r110042 = r110036 + r110041;
        double r110043 = sqrt(r110042);
        double r110044 = r110035 * r110043;
        return r110044;
}

double f(double J, double K, double U) {
        double r110045 = U;
        double r110046 = -3.44026472893723e+213;
        bool r110047 = r110045 <= r110046;
        double r110048 = -1.4686792642946565e+122;
        bool r110049 = r110045 <= r110048;
        double r110050 = !r110049;
        bool r110051 = r110047 || r110050;
        double r110052 = -2.0;
        double r110053 = J;
        double r110054 = r110052 * r110053;
        double r110055 = K;
        double r110056 = 2.0;
        double r110057 = r110055 / r110056;
        double r110058 = cos(r110057);
        double r110059 = 1.0;
        double r110060 = r110056 * r110053;
        double r110061 = r110045 / r110060;
        double r110062 = r110061 / r110058;
        double r110063 = pow(r110062, r110056);
        double r110064 = r110059 + r110063;
        double r110065 = sqrt(r110064);
        double r110066 = r110058 * r110065;
        double r110067 = r110054 * r110066;
        double r110068 = 0.25;
        double r110069 = sqrt(r110068);
        double r110070 = r110069 * r110045;
        double r110071 = 0.5;
        double r110072 = r110071 * r110055;
        double r110073 = cos(r110072);
        double r110074 = r110053 * r110073;
        double r110075 = r110070 / r110074;
        double r110076 = r110058 * r110075;
        double r110077 = r110054 * r110076;
        double r110078 = r110051 ? r110067 : r110077;
        return r110078;
}

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 U < -3.44026472893723e+213 or -1.4686792642946565e+122 < U

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

      \[\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. Using strategy rm
    5. Applied associate-/r*16.5

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

    if -3.44026472893723e+213 < U < -1.4686792642946565e+122

    1. Initial program 33.2

      \[\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*33.2

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;U \le -3.440264728937229717785528289539985872593 \cdot 10^{213} \lor \neg \left(U \le -1.468679264294656491917272404167659060091 \cdot 10^{122}\right):\\ \;\;\;\;\left(-2 \cdot J\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \sqrt{1 + {\left(\frac{\frac{U}{2 \cdot J}}{\cos \left(\frac{K}{2}\right)}\right)}^{2}}\right)\\ \mathbf{else}:\\ \;\;\;\;\left(-2 \cdot J\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \frac{\sqrt{0.25} \cdot U}{J \cdot \cos \left(0.5 \cdot K\right)}\right)\\ \end{array}\]

Reproduce

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