Average Error: 17.4 → 7.4
Time: 9.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}}\]
\[\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 r248991 = -2.0;
        double r248992 = J;
        double r248993 = r248991 * r248992;
        double r248994 = K;
        double r248995 = 2.0;
        double r248996 = r248994 / r248995;
        double r248997 = cos(r248996);
        double r248998 = r248993 * r248997;
        double r248999 = 1.0;
        double r249000 = U;
        double r249001 = r248995 * r248992;
        double r249002 = r249001 * r248997;
        double r249003 = r249000 / r249002;
        double r249004 = pow(r249003, r248995);
        double r249005 = r248999 + r249004;
        double r249006 = sqrt(r249005);
        double r249007 = r248998 * r249006;
        return r249007;
}

double f(double J, double K, double U) {
        double r249008 = -2.0;
        double r249009 = J;
        double r249010 = r249008 * r249009;
        double r249011 = K;
        double r249012 = 2.0;
        double r249013 = r249011 / r249012;
        double r249014 = cos(r249013);
        double r249015 = r249010 * r249014;
        double r249016 = 1.0;
        double r249017 = sqrt(r249016);
        double r249018 = U;
        double r249019 = r249012 * r249009;
        double r249020 = r249019 * r249014;
        double r249021 = r249018 / r249020;
        double r249022 = 2.0;
        double r249023 = r249012 / r249022;
        double r249024 = pow(r249021, r249023);
        double r249025 = hypot(r249017, r249024);
        double r249026 = r249015 * r249025;
        return r249026;
}

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 17.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 sqr-pow17.4

    \[\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-sqrt17.4

    \[\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-def7.4

    \[\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 simplification7.4

    \[\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 2020047 +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)))))