Average Error: 15.2 → 1.4
Time: 29.5s
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)}\]
\[e^{\left(-{\left(\frac{m + n}{2} - M\right)}^{2}\right) - \left(\ell - \left|m - n\right|\right)}\]
\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)}
e^{\left(-{\left(\frac{m + n}{2} - M\right)}^{2}\right) - \left(\ell - \left|m - n\right|\right)}
double f(double K, double m, double n, double M, double l) {
        double r4463396 = K;
        double r4463397 = m;
        double r4463398 = n;
        double r4463399 = r4463397 + r4463398;
        double r4463400 = r4463396 * r4463399;
        double r4463401 = 2.0;
        double r4463402 = r4463400 / r4463401;
        double r4463403 = M;
        double r4463404 = r4463402 - r4463403;
        double r4463405 = cos(r4463404);
        double r4463406 = r4463399 / r4463401;
        double r4463407 = r4463406 - r4463403;
        double r4463408 = pow(r4463407, r4463401);
        double r4463409 = -r4463408;
        double r4463410 = l;
        double r4463411 = r4463397 - r4463398;
        double r4463412 = fabs(r4463411);
        double r4463413 = r4463410 - r4463412;
        double r4463414 = r4463409 - r4463413;
        double r4463415 = exp(r4463414);
        double r4463416 = r4463405 * r4463415;
        return r4463416;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r4463417 = m;
        double r4463418 = n;
        double r4463419 = r4463417 + r4463418;
        double r4463420 = 2.0;
        double r4463421 = r4463419 / r4463420;
        double r4463422 = M;
        double r4463423 = r4463421 - r4463422;
        double r4463424 = pow(r4463423, r4463420);
        double r4463425 = -r4463424;
        double r4463426 = l;
        double r4463427 = r4463417 - r4463418;
        double r4463428 = fabs(r4463427);
        double r4463429 = r4463426 - r4463428;
        double r4463430 = r4463425 - r4463429;
        double r4463431 = exp(r4463430);
        return r4463431;
}

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.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)}\]
  2. Taylor expanded around 0 1.4

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

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

Reproduce

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