Average Error: 15.8 → 1.4
Time: 13.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 r138514 = K;
        double r138515 = m;
        double r138516 = n;
        double r138517 = r138515 + r138516;
        double r138518 = r138514 * r138517;
        double r138519 = 2.0;
        double r138520 = r138518 / r138519;
        double r138521 = M;
        double r138522 = r138520 - r138521;
        double r138523 = cos(r138522);
        double r138524 = r138517 / r138519;
        double r138525 = r138524 - r138521;
        double r138526 = pow(r138525, r138519);
        double r138527 = -r138526;
        double r138528 = l;
        double r138529 = r138515 - r138516;
        double r138530 = fabs(r138529);
        double r138531 = r138528 - r138530;
        double r138532 = r138527 - r138531;
        double r138533 = exp(r138532);
        double r138534 = r138523 * r138533;
        return r138534;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r138535 = m;
        double r138536 = n;
        double r138537 = r138535 + r138536;
        double r138538 = 2.0;
        double r138539 = r138537 / r138538;
        double r138540 = M;
        double r138541 = r138539 - r138540;
        double r138542 = pow(r138541, r138538);
        double r138543 = -r138542;
        double r138544 = l;
        double r138545 = r138535 - r138536;
        double r138546 = fabs(r138545);
        double r138547 = r138544 - r138546;
        double r138548 = r138543 - r138547;
        double r138549 = exp(r138548);
        return r138549;
}

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.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 2020045 +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)))))))