Average Error: 17.0 → 7.7
Time: 37.2s
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 r3557420 = -2.0;
        double r3557421 = J;
        double r3557422 = r3557420 * r3557421;
        double r3557423 = K;
        double r3557424 = 2.0;
        double r3557425 = r3557423 / r3557424;
        double r3557426 = cos(r3557425);
        double r3557427 = r3557422 * r3557426;
        double r3557428 = 1.0;
        double r3557429 = U;
        double r3557430 = r3557424 * r3557421;
        double r3557431 = r3557430 * r3557426;
        double r3557432 = r3557429 / r3557431;
        double r3557433 = pow(r3557432, r3557424);
        double r3557434 = r3557428 + r3557433;
        double r3557435 = sqrt(r3557434);
        double r3557436 = r3557427 * r3557435;
        return r3557436;
}

double f(double J, double K, double U) {
        double r3557437 = 1.0;
        double r3557438 = U;
        double r3557439 = K;
        double r3557440 = 2.0;
        double r3557441 = r3557439 / r3557440;
        double r3557442 = cos(r3557441);
        double r3557443 = J;
        double r3557444 = r3557443 * r3557440;
        double r3557445 = r3557442 * r3557444;
        double r3557446 = r3557438 / r3557445;
        double r3557447 = hypot(r3557437, r3557446);
        double r3557448 = -2.0;
        double r3557449 = r3557448 * r3557443;
        double r3557450 = r3557449 * r3557442;
        double r3557451 = r3557447 * r3557450;
        return r3557451;
}

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

    \[\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. Using strategy rm
  4. Applied div-inv7.8

    \[\leadsto \mathsf{hypot}\left(1, \color{blue}{U \cdot \frac{1}{\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)\]
  5. Using strategy rm
  6. Applied associate-*r/7.7

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

    \[\leadsto \mathsf{hypot}\left(1, \frac{\color{blue}{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)\]
  8. Final simplification7.7

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