Average Error: 15.1 → 1.3
Time: 45.4s
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 r4687771 = K;
        double r4687772 = m;
        double r4687773 = n;
        double r4687774 = r4687772 + r4687773;
        double r4687775 = r4687771 * r4687774;
        double r4687776 = 2.0;
        double r4687777 = r4687775 / r4687776;
        double r4687778 = M;
        double r4687779 = r4687777 - r4687778;
        double r4687780 = cos(r4687779);
        double r4687781 = r4687774 / r4687776;
        double r4687782 = r4687781 - r4687778;
        double r4687783 = pow(r4687782, r4687776);
        double r4687784 = -r4687783;
        double r4687785 = l;
        double r4687786 = r4687772 - r4687773;
        double r4687787 = fabs(r4687786);
        double r4687788 = r4687785 - r4687787;
        double r4687789 = r4687784 - r4687788;
        double r4687790 = exp(r4687789);
        double r4687791 = r4687780 * r4687790;
        return r4687791;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r4687792 = M;
        double r4687793 = -r4687792;
        double r4687794 = cos(r4687793);
        double r4687795 = l;
        double r4687796 = m;
        double r4687797 = n;
        double r4687798 = r4687796 - r4687797;
        double r4687799 = fabs(r4687798);
        double r4687800 = r4687795 - r4687799;
        double r4687801 = r4687797 + r4687796;
        double r4687802 = 2.0;
        double r4687803 = r4687801 / r4687802;
        double r4687804 = r4687803 - r4687792;
        double r4687805 = pow(r4687804, r4687802);
        double r4687806 = r4687800 + r4687805;
        double r4687807 = exp(r4687806);
        double r4687808 = r4687794 / r4687807;
        return r4687808;
}

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)))))))