Average Error: 15.3 → 1.6
Time: 6.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)}\]
\[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 r114019 = K;
        double r114020 = m;
        double r114021 = n;
        double r114022 = r114020 + r114021;
        double r114023 = r114019 * r114022;
        double r114024 = 2.0;
        double r114025 = r114023 / r114024;
        double r114026 = M;
        double r114027 = r114025 - r114026;
        double r114028 = cos(r114027);
        double r114029 = r114022 / r114024;
        double r114030 = r114029 - r114026;
        double r114031 = pow(r114030, r114024);
        double r114032 = -r114031;
        double r114033 = l;
        double r114034 = r114020 - r114021;
        double r114035 = fabs(r114034);
        double r114036 = r114033 - r114035;
        double r114037 = r114032 - r114036;
        double r114038 = exp(r114037);
        double r114039 = r114028 * r114038;
        return r114039;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r114040 = m;
        double r114041 = n;
        double r114042 = r114040 + r114041;
        double r114043 = 2.0;
        double r114044 = r114042 / r114043;
        double r114045 = M;
        double r114046 = r114044 - r114045;
        double r114047 = pow(r114046, r114043);
        double r114048 = -r114047;
        double r114049 = l;
        double r114050 = r114040 - r114041;
        double r114051 = fabs(r114050);
        double r114052 = r114049 - r114051;
        double r114053 = r114048 - r114052;
        double r114054 = exp(r114053);
        return r114054;
}

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

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

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

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

Reproduce

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