Average Error: 15.4 → 1.4
Time: 6.5s
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 r179748 = K;
        double r179749 = m;
        double r179750 = n;
        double r179751 = r179749 + r179750;
        double r179752 = r179748 * r179751;
        double r179753 = 2.0;
        double r179754 = r179752 / r179753;
        double r179755 = M;
        double r179756 = r179754 - r179755;
        double r179757 = cos(r179756);
        double r179758 = r179751 / r179753;
        double r179759 = r179758 - r179755;
        double r179760 = pow(r179759, r179753);
        double r179761 = -r179760;
        double r179762 = l;
        double r179763 = r179749 - r179750;
        double r179764 = fabs(r179763);
        double r179765 = r179762 - r179764;
        double r179766 = r179761 - r179765;
        double r179767 = exp(r179766);
        double r179768 = r179757 * r179767;
        return r179768;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r179769 = 1.0;
        double r179770 = m;
        double r179771 = n;
        double r179772 = r179770 + r179771;
        double r179773 = 2.0;
        double r179774 = r179772 / r179773;
        double r179775 = M;
        double r179776 = r179774 - r179775;
        double r179777 = pow(r179776, r179773);
        double r179778 = l;
        double r179779 = r179770 - r179771;
        double r179780 = fabs(r179779);
        double r179781 = r179778 - r179780;
        double r179782 = r179777 + r179781;
        double r179783 = exp(r179782);
        double r179784 = r179769 / r179783;
        return r179784;
}

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

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

    \[\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 2020059 +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)))))))