Average Error: 15.1 → 1.3
Time: 25.0s
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 r163676 = K;
        double r163677 = m;
        double r163678 = n;
        double r163679 = r163677 + r163678;
        double r163680 = r163676 * r163679;
        double r163681 = 2.0;
        double r163682 = r163680 / r163681;
        double r163683 = M;
        double r163684 = r163682 - r163683;
        double r163685 = cos(r163684);
        double r163686 = r163679 / r163681;
        double r163687 = r163686 - r163683;
        double r163688 = pow(r163687, r163681);
        double r163689 = -r163688;
        double r163690 = l;
        double r163691 = r163677 - r163678;
        double r163692 = fabs(r163691);
        double r163693 = r163690 - r163692;
        double r163694 = r163689 - r163693;
        double r163695 = exp(r163694);
        double r163696 = r163685 * r163695;
        return r163696;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r163697 = m;
        double r163698 = n;
        double r163699 = r163697 + r163698;
        double r163700 = 2.0;
        double r163701 = r163699 / r163700;
        double r163702 = M;
        double r163703 = r163701 - r163702;
        double r163704 = pow(r163703, r163700);
        double r163705 = -r163704;
        double r163706 = l;
        double r163707 = r163697 - r163698;
        double r163708 = fabs(r163707);
        double r163709 = r163706 - r163708;
        double r163710 = r163705 - r163709;
        double r163711 = exp(r163710);
        return r163711;
}

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. Taylor expanded around 0 1.3

    \[\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.3

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

Reproduce

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