Average Error: 15.1 → 1.3
Time: 44.7s
Precision: 64
\[\cos \left(\frac{K \cdot \left(m + n\right)}{2} - M\right) \cdot e^{\left(-{\left(\frac{m + n}{2} - M\right)}^{2}\right) - \left(\ell - \left|m - n\right|\right)}\]
\[\frac{\cos \left(-M\right)}{e^{\left(\ell - \left|m - n\right|\right) + {\left(\frac{n + m}{2} - M\right)}^{2}}}\]
\cos \left(\frac{K \cdot \left(m + n\right)}{2} - M\right) \cdot e^{\left(-{\left(\frac{m + n}{2} - M\right)}^{2}\right) - \left(\ell - \left|m - n\right|\right)}
\frac{\cos \left(-M\right)}{e^{\left(\ell - \left|m - n\right|\right) + {\left(\frac{n + m}{2} - M\right)}^{2}}}
double f(double K, double m, double n, double M, double l) {
        double r4688369 = K;
        double r4688370 = m;
        double r4688371 = n;
        double r4688372 = r4688370 + r4688371;
        double r4688373 = r4688369 * r4688372;
        double r4688374 = 2.0;
        double r4688375 = r4688373 / r4688374;
        double r4688376 = M;
        double r4688377 = r4688375 - r4688376;
        double r4688378 = cos(r4688377);
        double r4688379 = r4688372 / r4688374;
        double r4688380 = r4688379 - r4688376;
        double r4688381 = pow(r4688380, r4688374);
        double r4688382 = -r4688381;
        double r4688383 = l;
        double r4688384 = r4688370 - r4688371;
        double r4688385 = fabs(r4688384);
        double r4688386 = r4688383 - r4688385;
        double r4688387 = r4688382 - r4688386;
        double r4688388 = exp(r4688387);
        double r4688389 = r4688378 * r4688388;
        return r4688389;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r4688390 = M;
        double r4688391 = -r4688390;
        double r4688392 = cos(r4688391);
        double r4688393 = l;
        double r4688394 = m;
        double r4688395 = n;
        double r4688396 = r4688394 - r4688395;
        double r4688397 = fabs(r4688396);
        double r4688398 = r4688393 - r4688397;
        double r4688399 = r4688395 + r4688394;
        double r4688400 = 2.0;
        double r4688401 = r4688399 / r4688400;
        double r4688402 = r4688401 - r4688390;
        double r4688403 = pow(r4688402, r4688400);
        double r4688404 = r4688398 + r4688403;
        double r4688405 = exp(r4688404);
        double r4688406 = r4688392 / r4688405;
        return r4688406;
}

Error

Bits error versus K

Bits error versus m

Bits error versus n

Bits error versus M

Bits error versus l

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 15.1

    \[\cos \left(\frac{K \cdot \left(m + n\right)}{2} - M\right) \cdot e^{\left(-{\left(\frac{m + n}{2} - M\right)}^{2}\right) - \left(\ell - \left|m - n\right|\right)}\]
  2. Simplified15.1

    \[\leadsto \color{blue}{\frac{\cos \left(\frac{\left(n + m\right) \cdot K}{2} - M\right)}{e^{\left(\ell - \left|m - n\right|\right) + {\left(\frac{n + m}{2} - M\right)}^{2}}}}\]
  3. Taylor expanded around 0 1.3

    \[\leadsto \frac{\cos \left(\frac{\color{blue}{0}}{2} - M\right)}{e^{\left(\ell - \left|m - n\right|\right) + {\left(\frac{n + m}{2} - M\right)}^{2}}}\]
  4. Final simplification1.3

    \[\leadsto \frac{\cos \left(-M\right)}{e^{\left(\ell - \left|m - n\right|\right) + {\left(\frac{n + m}{2} - M\right)}^{2}}}\]

Reproduce

herbie shell --seed 2019200 +o rules:numerics
(FPCore (K m n M l)
  :name "Maksimov and Kolovsky, Equation (32)"
  (* (cos (- (/ (* K (+ m n)) 2.0) M)) (exp (- (- (pow (- (/ (+ m n) 2.0) M) 2.0)) (- l (fabs (- m n)))))))