Average Error: 15.0 → 1.4
Time: 5.7s
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{1}{e^{{\left(\frac{m + n}{2} - M\right)}^{2} + \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)}
\frac{1}{e^{{\left(\frac{m + n}{2} - M\right)}^{2} + \left(\ell - \left|m - n\right|\right)}}
double f(double K, double m, double n, double M, double l) {
        double r120971 = K;
        double r120972 = m;
        double r120973 = n;
        double r120974 = r120972 + r120973;
        double r120975 = r120971 * r120974;
        double r120976 = 2.0;
        double r120977 = r120975 / r120976;
        double r120978 = M;
        double r120979 = r120977 - r120978;
        double r120980 = cos(r120979);
        double r120981 = r120974 / r120976;
        double r120982 = r120981 - r120978;
        double r120983 = pow(r120982, r120976);
        double r120984 = -r120983;
        double r120985 = l;
        double r120986 = r120972 - r120973;
        double r120987 = fabs(r120986);
        double r120988 = r120985 - r120987;
        double r120989 = r120984 - r120988;
        double r120990 = exp(r120989);
        double r120991 = r120980 * r120990;
        return r120991;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r120992 = 1.0;
        double r120993 = m;
        double r120994 = n;
        double r120995 = r120993 + r120994;
        double r120996 = 2.0;
        double r120997 = r120995 / r120996;
        double r120998 = M;
        double r120999 = r120997 - r120998;
        double r121000 = pow(r120999, r120996);
        double r121001 = l;
        double r121002 = r120993 - r120994;
        double r121003 = fabs(r121002);
        double r121004 = r121001 - r121003;
        double r121005 = r121000 + r121004;
        double r121006 = exp(r121005);
        double r121007 = r120992 / r121006;
        return r121007;
}

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

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

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

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

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

Reproduce

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