Average Error: 17.2 → 7.3
Time: 23.5s
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(2 \cdot J\right)}\right) \cdot \left(\left(J \cdot -2\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(2 \cdot J\right)}\right) \cdot \left(\left(J \cdot -2\right) \cdot \cos \left(\frac{K}{2}\right)\right)
double f(double J, double K, double U) {
        double r1696590 = -2.0;
        double r1696591 = J;
        double r1696592 = r1696590 * r1696591;
        double r1696593 = K;
        double r1696594 = 2.0;
        double r1696595 = r1696593 / r1696594;
        double r1696596 = cos(r1696595);
        double r1696597 = r1696592 * r1696596;
        double r1696598 = 1.0;
        double r1696599 = U;
        double r1696600 = r1696594 * r1696591;
        double r1696601 = r1696600 * r1696596;
        double r1696602 = r1696599 / r1696601;
        double r1696603 = pow(r1696602, r1696594);
        double r1696604 = r1696598 + r1696603;
        double r1696605 = sqrt(r1696604);
        double r1696606 = r1696597 * r1696605;
        return r1696606;
}

double f(double J, double K, double U) {
        double r1696607 = 1.0;
        double r1696608 = U;
        double r1696609 = K;
        double r1696610 = 2.0;
        double r1696611 = r1696609 / r1696610;
        double r1696612 = cos(r1696611);
        double r1696613 = J;
        double r1696614 = r1696610 * r1696613;
        double r1696615 = r1696612 * r1696614;
        double r1696616 = r1696608 / r1696615;
        double r1696617 = hypot(r1696607, r1696616);
        double r1696618 = -2.0;
        double r1696619 = r1696613 * r1696618;
        double r1696620 = r1696619 * r1696612;
        double r1696621 = r1696617 * r1696620;
        return r1696621;
}

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

    \[\leadsto \color{blue}{\mathsf{hypot}\left(1, \frac{U}{\left(2 \cdot J\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.3

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

Reproduce

herbie shell --seed 2019152 +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)))))