Average Error: 17.2 → 7.8
Time: 1.3m
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 r11758460 = -2.0;
        double r11758461 = J;
        double r11758462 = r11758460 * r11758461;
        double r11758463 = K;
        double r11758464 = 2.0;
        double r11758465 = r11758463 / r11758464;
        double r11758466 = cos(r11758465);
        double r11758467 = r11758462 * r11758466;
        double r11758468 = 1.0;
        double r11758469 = U;
        double r11758470 = r11758464 * r11758461;
        double r11758471 = r11758470 * r11758466;
        double r11758472 = r11758469 / r11758471;
        double r11758473 = pow(r11758472, r11758464);
        double r11758474 = r11758468 + r11758473;
        double r11758475 = sqrt(r11758474);
        double r11758476 = r11758467 * r11758475;
        return r11758476;
}

double f(double J, double K, double U) {
        double r11758477 = 1.0;
        double r11758478 = U;
        double r11758479 = K;
        double r11758480 = 2.0;
        double r11758481 = r11758479 / r11758480;
        double r11758482 = cos(r11758481);
        double r11758483 = r11758482 * r11758480;
        double r11758484 = J;
        double r11758485 = r11758483 * r11758484;
        double r11758486 = r11758478 / r11758485;
        double r11758487 = hypot(r11758477, r11758486);
        double r11758488 = -2.0;
        double r11758489 = r11758488 * r11758484;
        double r11758490 = r11758489 * r11758482;
        double r11758491 = r11758487 * r11758490;
        return r11758491;
}

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

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

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