Average Error: 17.2 → 7.5
Time: 34.4s
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}}\]
\[\mathsf{hypot}\left(1, \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(J \cdot 2\right)}\right) \cdot \left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{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}}
\mathsf{hypot}\left(1, \frac{U}{\cos \left(\frac{K}{2}\right) \cdot \left(J \cdot 2\right)}\right) \cdot \left(\left(-2 \cdot J\right) \cdot \cos \left(\frac{K}{2}\right)\right)
double f(double J, double K, double U) {
        double r3800843 = -2.0;
        double r3800844 = J;
        double r3800845 = r3800843 * r3800844;
        double r3800846 = K;
        double r3800847 = 2.0;
        double r3800848 = r3800846 / r3800847;
        double r3800849 = cos(r3800848);
        double r3800850 = r3800845 * r3800849;
        double r3800851 = 1.0;
        double r3800852 = U;
        double r3800853 = r3800847 * r3800844;
        double r3800854 = r3800853 * r3800849;
        double r3800855 = r3800852 / r3800854;
        double r3800856 = pow(r3800855, r3800847);
        double r3800857 = r3800851 + r3800856;
        double r3800858 = sqrt(r3800857);
        double r3800859 = r3800850 * r3800858;
        return r3800859;
}

double f(double J, double K, double U) {
        double r3800860 = 1.0;
        double r3800861 = U;
        double r3800862 = K;
        double r3800863 = 2.0;
        double r3800864 = r3800862 / r3800863;
        double r3800865 = cos(r3800864);
        double r3800866 = J;
        double r3800867 = r3800866 * r3800863;
        double r3800868 = r3800865 * r3800867;
        double r3800869 = r3800861 / r3800868;
        double r3800870 = hypot(r3800860, r3800869);
        double r3800871 = -2.0;
        double r3800872 = r3800871 * r3800866;
        double r3800873 = r3800872 * r3800865;
        double r3800874 = r3800870 * r3800873;
        return r3800874;
}

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.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. Simplified7.5

    \[\leadsto \color{blue}{\mathsf{hypot}\left(1, \frac{U}{\left(J \cdot 2\right) \cdot \cos \left(\frac{K}{2}\right)}\right) \cdot \left(\cos \left(\frac{K}{2}\right) \cdot \left(-2 \cdot J\right)\right)}\]
  3. Final simplification7.5

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

Reproduce

herbie shell --seed 2019138 +o rules:numerics
(FPCore (J K U)
  :name "Maksimov and Kolovsky, Equation (3)"
  (* (* (* -2 J) (cos (/ K 2))) (sqrt (+ 1 (pow (/ U (* (* 2 J) (cos (/ K 2)))) 2)))))