Average Error: 18.3 → 8.4
Time: 9.9s
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 r216762 = -2.0;
        double r216763 = J;
        double r216764 = r216762 * r216763;
        double r216765 = K;
        double r216766 = 2.0;
        double r216767 = r216765 / r216766;
        double r216768 = cos(r216767);
        double r216769 = r216764 * r216768;
        double r216770 = 1.0;
        double r216771 = U;
        double r216772 = r216766 * r216763;
        double r216773 = r216772 * r216768;
        double r216774 = r216771 / r216773;
        double r216775 = pow(r216774, r216766);
        double r216776 = r216770 + r216775;
        double r216777 = sqrt(r216776);
        double r216778 = r216769 * r216777;
        return r216778;
}

double f(double J, double K, double U) {
        double r216779 = -2.0;
        double r216780 = J;
        double r216781 = r216779 * r216780;
        double r216782 = K;
        double r216783 = 2.0;
        double r216784 = r216782 / r216783;
        double r216785 = cos(r216784);
        double r216786 = r216781 * r216785;
        double r216787 = 1.0;
        double r216788 = sqrt(r216787);
        double r216789 = U;
        double r216790 = r216783 * r216780;
        double r216791 = r216790 * r216785;
        double r216792 = r216789 / r216791;
        double r216793 = 2.0;
        double r216794 = r216783 / r216793;
        double r216795 = pow(r216792, r216794);
        double r216796 = hypot(r216788, r216795);
        double r216797 = r216786 * r216796;
        return r216797;
}

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.3

    \[\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.3

    \[\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.3

    \[\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.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 simplification8.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 2020036 +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)))))