Average Error: 14.7 → 1.3
Time: 25.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)}\]
\[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 r91906 = K;
        double r91907 = m;
        double r91908 = n;
        double r91909 = r91907 + r91908;
        double r91910 = r91906 * r91909;
        double r91911 = 2.0;
        double r91912 = r91910 / r91911;
        double r91913 = M;
        double r91914 = r91912 - r91913;
        double r91915 = cos(r91914);
        double r91916 = r91909 / r91911;
        double r91917 = r91916 - r91913;
        double r91918 = pow(r91917, r91911);
        double r91919 = -r91918;
        double r91920 = l;
        double r91921 = r91907 - r91908;
        double r91922 = fabs(r91921);
        double r91923 = r91920 - r91922;
        double r91924 = r91919 - r91923;
        double r91925 = exp(r91924);
        double r91926 = r91915 * r91925;
        return r91926;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r91927 = m;
        double r91928 = n;
        double r91929 = r91927 + r91928;
        double r91930 = 2.0;
        double r91931 = r91929 / r91930;
        double r91932 = M;
        double r91933 = r91931 - r91932;
        double r91934 = pow(r91933, r91930);
        double r91935 = -r91934;
        double r91936 = l;
        double r91937 = r91927 - r91928;
        double r91938 = fabs(r91937);
        double r91939 = r91936 - r91938;
        double r91940 = r91935 - r91939;
        double r91941 = exp(r91940);
        return r91941;
}

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

    \[\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 2019212 +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)))))))