Average Error: 15.6 → 1.4
Time: 36.2s
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|m - n\right| - \ell\right) - {\left(\frac{m + n}{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)}
e^{\left(\left|m - n\right| - \ell\right) - {\left(\frac{m + n}{2} - M\right)}^{2}}
double f(double K, double m, double n, double M, double l) {
        double r4214047 = K;
        double r4214048 = m;
        double r4214049 = n;
        double r4214050 = r4214048 + r4214049;
        double r4214051 = r4214047 * r4214050;
        double r4214052 = 2.0;
        double r4214053 = r4214051 / r4214052;
        double r4214054 = M;
        double r4214055 = r4214053 - r4214054;
        double r4214056 = cos(r4214055);
        double r4214057 = r4214050 / r4214052;
        double r4214058 = r4214057 - r4214054;
        double r4214059 = pow(r4214058, r4214052);
        double r4214060 = -r4214059;
        double r4214061 = l;
        double r4214062 = r4214048 - r4214049;
        double r4214063 = fabs(r4214062);
        double r4214064 = r4214061 - r4214063;
        double r4214065 = r4214060 - r4214064;
        double r4214066 = exp(r4214065);
        double r4214067 = r4214056 * r4214066;
        return r4214067;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r4214068 = m;
        double r4214069 = n;
        double r4214070 = r4214068 - r4214069;
        double r4214071 = fabs(r4214070);
        double r4214072 = l;
        double r4214073 = r4214071 - r4214072;
        double r4214074 = r4214068 + r4214069;
        double r4214075 = 2.0;
        double r4214076 = r4214074 / r4214075;
        double r4214077 = M;
        double r4214078 = r4214076 - r4214077;
        double r4214079 = pow(r4214078, r4214075);
        double r4214080 = r4214073 - r4214079;
        double r4214081 = exp(r4214080);
        return r4214081;
}

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

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

    \[\leadsto \color{blue}{\cos \left(\frac{\left(m + n\right) \cdot K}{2} - M\right) \cdot e^{\left(\left|m - n\right| - \ell\right) - {\left(\frac{m + n}{2} - M\right)}^{2}}}\]
  3. Taylor expanded around 0 1.4

    \[\leadsto \color{blue}{1} \cdot e^{\left(\left|m - n\right| - \ell\right) - {\left(\frac{m + n}{2} - M\right)}^{2}}\]
  4. Final simplification1.4

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

Reproduce

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