Average Error: 15.7 → 1.3
Time: 7.9s
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 r243950 = K;
        double r243951 = m;
        double r243952 = n;
        double r243953 = r243951 + r243952;
        double r243954 = r243950 * r243953;
        double r243955 = 2.0;
        double r243956 = r243954 / r243955;
        double r243957 = M;
        double r243958 = r243956 - r243957;
        double r243959 = cos(r243958);
        double r243960 = r243953 / r243955;
        double r243961 = r243960 - r243957;
        double r243962 = pow(r243961, r243955);
        double r243963 = -r243962;
        double r243964 = l;
        double r243965 = r243951 - r243952;
        double r243966 = fabs(r243965);
        double r243967 = r243964 - r243966;
        double r243968 = r243963 - r243967;
        double r243969 = exp(r243968);
        double r243970 = r243959 * r243969;
        return r243970;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r243971 = 1.0;
        double r243972 = m;
        double r243973 = n;
        double r243974 = r243972 + r243973;
        double r243975 = 2.0;
        double r243976 = r243974 / r243975;
        double r243977 = M;
        double r243978 = r243976 - r243977;
        double r243979 = pow(r243978, r243975);
        double r243980 = l;
        double r243981 = r243972 - r243973;
        double r243982 = fabs(r243981);
        double r243983 = r243980 - r243982;
        double r243984 = r243979 + r243983;
        double r243985 = exp(r243984);
        double r243986 = r243971 / r243985;
        return r243986;
}

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

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

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

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

Reproduce

herbie shell --seed 2019322 
(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)))))))