Average Error: 15.4 → 1.4
Time: 6.8s
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 r233564 = K;
        double r233565 = m;
        double r233566 = n;
        double r233567 = r233565 + r233566;
        double r233568 = r233564 * r233567;
        double r233569 = 2.0;
        double r233570 = r233568 / r233569;
        double r233571 = M;
        double r233572 = r233570 - r233571;
        double r233573 = cos(r233572);
        double r233574 = r233567 / r233569;
        double r233575 = r233574 - r233571;
        double r233576 = pow(r233575, r233569);
        double r233577 = -r233576;
        double r233578 = l;
        double r233579 = r233565 - r233566;
        double r233580 = fabs(r233579);
        double r233581 = r233578 - r233580;
        double r233582 = r233577 - r233581;
        double r233583 = exp(r233582);
        double r233584 = r233573 * r233583;
        return r233584;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r233585 = 1.0;
        double r233586 = m;
        double r233587 = n;
        double r233588 = r233586 + r233587;
        double r233589 = 2.0;
        double r233590 = r233588 / r233589;
        double r233591 = M;
        double r233592 = r233590 - r233591;
        double r233593 = pow(r233592, r233589);
        double r233594 = l;
        double r233595 = r233586 - r233587;
        double r233596 = fabs(r233595);
        double r233597 = r233594 - r233596;
        double r233598 = r233593 + r233597;
        double r233599 = exp(r233598);
        double r233600 = r233585 / r233599;
        return r233600;
}

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 2020018 +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)))))))