Average Error: 17.5 → 7.7
Time: 36.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}}\]
\[\left(\cos \left(\frac{K}{2}\right) \cdot \mathsf{hypot}\left(1, \frac{\frac{U}{J \cdot 2}}{\cos \left(\frac{K}{2}\right)}\right)\right) \cdot \left(J \cdot -2\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}}
\left(\cos \left(\frac{K}{2}\right) \cdot \mathsf{hypot}\left(1, \frac{\frac{U}{J \cdot 2}}{\cos \left(\frac{K}{2}\right)}\right)\right) \cdot \left(J \cdot -2\right)
double f(double J, double K, double U) {
        double r5002264 = -2.0;
        double r5002265 = J;
        double r5002266 = r5002264 * r5002265;
        double r5002267 = K;
        double r5002268 = 2.0;
        double r5002269 = r5002267 / r5002268;
        double r5002270 = cos(r5002269);
        double r5002271 = r5002266 * r5002270;
        double r5002272 = 1.0;
        double r5002273 = U;
        double r5002274 = r5002268 * r5002265;
        double r5002275 = r5002274 * r5002270;
        double r5002276 = r5002273 / r5002275;
        double r5002277 = pow(r5002276, r5002268);
        double r5002278 = r5002272 + r5002277;
        double r5002279 = sqrt(r5002278);
        double r5002280 = r5002271 * r5002279;
        return r5002280;
}

double f(double J, double K, double U) {
        double r5002281 = K;
        double r5002282 = 2.0;
        double r5002283 = r5002281 / r5002282;
        double r5002284 = cos(r5002283);
        double r5002285 = 1.0;
        double r5002286 = U;
        double r5002287 = J;
        double r5002288 = r5002287 * r5002282;
        double r5002289 = r5002286 / r5002288;
        double r5002290 = r5002289 / r5002284;
        double r5002291 = hypot(r5002285, r5002290);
        double r5002292 = r5002284 * r5002291;
        double r5002293 = -2.0;
        double r5002294 = r5002287 * r5002293;
        double r5002295 = r5002292 * r5002294;
        return r5002295;
}

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

    \[\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 associate-*r*7.8

    \[\leadsto \color{blue}{\left(\mathsf{hypot}\left(1, \frac{U}{\left(J \cdot 2\right) \cdot \cos \left(\frac{K}{2}\right)}\right) \cdot \cos \left(\frac{K}{2}\right)\right) \cdot \left(-2 \cdot J\right)}\]
  5. Using strategy rm
  6. Applied associate-/r*7.7

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

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

Reproduce

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