Average Error: 14.9 → 1.4
Time: 4.0m
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 r31789054 = K;
        double r31789055 = m;
        double r31789056 = n;
        double r31789057 = r31789055 + r31789056;
        double r31789058 = r31789054 * r31789057;
        double r31789059 = 2.0;
        double r31789060 = r31789058 / r31789059;
        double r31789061 = M;
        double r31789062 = r31789060 - r31789061;
        double r31789063 = cos(r31789062);
        double r31789064 = r31789057 / r31789059;
        double r31789065 = r31789064 - r31789061;
        double r31789066 = pow(r31789065, r31789059);
        double r31789067 = -r31789066;
        double r31789068 = l;
        double r31789069 = r31789055 - r31789056;
        double r31789070 = fabs(r31789069);
        double r31789071 = r31789068 - r31789070;
        double r31789072 = r31789067 - r31789071;
        double r31789073 = exp(r31789072);
        double r31789074 = r31789063 * r31789073;
        return r31789074;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r31789075 = m;
        double r31789076 = n;
        double r31789077 = r31789075 + r31789076;
        double r31789078 = 2.0;
        double r31789079 = r31789077 / r31789078;
        double r31789080 = M;
        double r31789081 = r31789079 - r31789080;
        double r31789082 = pow(r31789081, r31789078);
        double r31789083 = -r31789082;
        double r31789084 = l;
        double r31789085 = r31789075 - r31789076;
        double r31789086 = fabs(r31789085);
        double r31789087 = r31789084 - r31789086;
        double r31789088 = r31789083 - r31789087;
        double r31789089 = exp(r31789088);
        return r31789089;
}

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

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

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

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

Reproduce

herbie shell --seed 2019125 +o rules:numerics
(FPCore (K m n M l)
  :name "Maksimov and Kolovsky, Equation (32)"
  (* (cos (- (/ (* K (+ m n)) 2) M)) (exp (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))))))