Average Error: 18.0 → 8.1
Time: 9.6s
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}}\]
\[\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(\sqrt{1}, {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{\left(\frac{2}{2}\right)}\right)\]
\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}}
\left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \mathsf{hypot}\left(\sqrt{1}, {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{\left(\frac{2}{2}\right)}\right)
double f(double J, double K, double U) {
        double r257049 = -2.0;
        double r257050 = J;
        double r257051 = r257049 * r257050;
        double r257052 = K;
        double r257053 = 2.0;
        double r257054 = r257052 / r257053;
        double r257055 = cos(r257054);
        double r257056 = r257051 * r257055;
        double r257057 = 1.0;
        double r257058 = U;
        double r257059 = r257053 * r257050;
        double r257060 = r257059 * r257055;
        double r257061 = r257058 / r257060;
        double r257062 = pow(r257061, r257053);
        double r257063 = r257057 + r257062;
        double r257064 = sqrt(r257063);
        double r257065 = r257056 * r257064;
        return r257065;
}

double f(double J, double K, double U) {
        double r257066 = -2.0;
        double r257067 = J;
        double r257068 = r257066 * r257067;
        double r257069 = K;
        double r257070 = 2.0;
        double r257071 = r257069 / r257070;
        double r257072 = cos(r257071);
        double r257073 = r257068 * r257072;
        double r257074 = 1.0;
        double r257075 = sqrt(r257074);
        double r257076 = U;
        double r257077 = r257070 * r257067;
        double r257078 = r257077 * r257072;
        double r257079 = r257076 / r257078;
        double r257080 = 2.0;
        double r257081 = r257070 / r257080;
        double r257082 = pow(r257079, r257081);
        double r257083 = hypot(r257075, r257082);
        double r257084 = r257073 * r257083;
        return r257084;
}

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. Initial program 18.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 sqr-pow18.0

    \[\leadsto \left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \sqrt{1 + \color{blue}{{\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{\left(\frac{2}{2}\right)} \cdot {\left(\frac{U}{\left(2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)}\right)}^{\left(\frac{2}{2}\right)}}}\]
  4. Applied add-sqr-sqrt18.0

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

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

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

Reproduce

herbie shell --seed 2020039 +o rules:numerics
(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)))))