Average Error: 17.9 → 15.7
Time: 7.2s
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}} \le 7.7724116612535878 \cdot 10^{305}:\\ \;\;\;\;\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)\\ \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}} \le 7.7724116612535878 \cdot 10^{305}:\\
\;\;\;\;\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)\\

\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 r176935 = -2.0;
        double r176936 = J;
        double r176937 = r176935 * r176936;
        double r176938 = K;
        double r176939 = 2.0;
        double r176940 = r176938 / r176939;
        double r176941 = cos(r176940);
        double r176942 = r176937 * r176941;
        double r176943 = 1.0;
        double r176944 = U;
        double r176945 = r176939 * r176936;
        double r176946 = r176945 * r176941;
        double r176947 = r176944 / r176946;
        double r176948 = pow(r176947, r176939);
        double r176949 = r176943 + r176948;
        double r176950 = sqrt(r176949);
        double r176951 = r176942 * r176950;
        return r176951;
}

double f(double J, double K, double U) {
        double r176952 = -2.0;
        double r176953 = J;
        double r176954 = r176952 * r176953;
        double r176955 = K;
        double r176956 = 2.0;
        double r176957 = r176955 / r176956;
        double r176958 = cos(r176957);
        double r176959 = r176954 * r176958;
        double r176960 = 1.0;
        double r176961 = U;
        double r176962 = r176956 * r176953;
        double r176963 = r176962 * r176958;
        double r176964 = r176961 / r176963;
        double r176965 = pow(r176964, r176956);
        double r176966 = r176960 + r176965;
        double r176967 = sqrt(r176966);
        double r176968 = r176959 * r176967;
        double r176969 = 7.772411661253588e+305;
        bool r176970 = r176968 <= r176969;
        double r176971 = r176958 * r176967;
        double r176972 = r176954 * r176971;
        double r176973 = 0.25;
        double r176974 = sqrt(r176973);
        double r176975 = r176974 * r176961;
        double r176976 = 0.5;
        double r176977 = r176976 * r176955;
        double r176978 = cos(r176977);
        double r176979 = r176953 * r176978;
        double r176980 = r176975 / r176979;
        double r176981 = r176959 * r176980;
        double r176982 = r176970 ? r176972 : r176981;
        return r176982;
}

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 (* (* (* -2.0 J) (cos (/ K 2.0))) (sqrt (+ 1.0 (pow (/ U (* (* 2.0 J) (cos (/ K 2.0)))) 2.0)))) < 7.772411661253588e+305

    1. Initial program 10.4

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

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

    if 7.772411661253588e+305 < (* (* (* -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.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}}\]
    2. Taylor expanded around inf 47.5

      \[\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 2 regimes into one program.
  4. Final simplification15.7

    \[\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}} \le 7.7724116612535878 \cdot 10^{305}:\\ \;\;\;\;\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)\\ \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 2020065 
(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)))))