Average Error: 14.8 → 1.4
Time: 9.1s
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 r120394 = K;
        double r120395 = m;
        double r120396 = n;
        double r120397 = r120395 + r120396;
        double r120398 = r120394 * r120397;
        double r120399 = 2.0;
        double r120400 = r120398 / r120399;
        double r120401 = M;
        double r120402 = r120400 - r120401;
        double r120403 = cos(r120402);
        double r120404 = r120397 / r120399;
        double r120405 = r120404 - r120401;
        double r120406 = pow(r120405, r120399);
        double r120407 = -r120406;
        double r120408 = l;
        double r120409 = r120395 - r120396;
        double r120410 = fabs(r120409);
        double r120411 = r120408 - r120410;
        double r120412 = r120407 - r120411;
        double r120413 = exp(r120412);
        double r120414 = r120403 * r120413;
        return r120414;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r120415 = m;
        double r120416 = n;
        double r120417 = r120415 + r120416;
        double r120418 = 2.0;
        double r120419 = r120417 / r120418;
        double r120420 = M;
        double r120421 = r120419 - r120420;
        double r120422 = pow(r120421, r120418);
        double r120423 = -r120422;
        double r120424 = l;
        double r120425 = r120415 - r120416;
        double r120426 = fabs(r120425);
        double r120427 = r120424 - r120426;
        double r120428 = r120423 - r120427;
        double r120429 = exp(r120428);
        return r120429;
}

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 14.8

    \[\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 2020035 +o rules:numerics
(FPCore (K m n M l)
  :name "Maksimov and Kolovsky, Equation (32)"
  :precision binary64
  (* (cos (- (/ (* K (+ m n)) 2) M)) (exp (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))))))