Average Error: 16.8 → 7.4
Time: 30.3s
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, \left(\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot 2\right) \cdot J}\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, \left(\frac{U}{\left(\cos \left(\frac{K}{2}\right) \cdot 2\right) \cdot J}\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 r3360363 = -2.0;
        double r3360364 = J;
        double r3360365 = r3360363 * r3360364;
        double r3360366 = K;
        double r3360367 = 2.0;
        double r3360368 = r3360366 / r3360367;
        double r3360369 = cos(r3360368);
        double r3360370 = r3360365 * r3360369;
        double r3360371 = 1.0;
        double r3360372 = U;
        double r3360373 = r3360367 * r3360364;
        double r3360374 = r3360373 * r3360369;
        double r3360375 = r3360372 / r3360374;
        double r3360376 = pow(r3360375, r3360367);
        double r3360377 = r3360371 + r3360376;
        double r3360378 = sqrt(r3360377);
        double r3360379 = r3360370 * r3360378;
        return r3360379;
}

double f(double J, double K, double U) {
        double r3360380 = 1.0;
        double r3360381 = U;
        double r3360382 = K;
        double r3360383 = 2.0;
        double r3360384 = r3360382 / r3360383;
        double r3360385 = cos(r3360384);
        double r3360386 = r3360385 * r3360383;
        double r3360387 = J;
        double r3360388 = r3360386 * r3360387;
        double r3360389 = r3360381 / r3360388;
        double r3360390 = hypot(r3360380, r3360389);
        double r3360391 = -2.0;
        double r3360392 = r3360391 * r3360387;
        double r3360393 = r3360392 * r3360385;
        double r3360394 = r3360390 * r3360393;
        return r3360394;
}

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 16.8

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

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

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

Reproduce

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