Average Error: 15.2 → 1.3
Time: 8.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)}\]
\[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 r200657 = K;
        double r200658 = m;
        double r200659 = n;
        double r200660 = r200658 + r200659;
        double r200661 = r200657 * r200660;
        double r200662 = 2.0;
        double r200663 = r200661 / r200662;
        double r200664 = M;
        double r200665 = r200663 - r200664;
        double r200666 = cos(r200665);
        double r200667 = r200660 / r200662;
        double r200668 = r200667 - r200664;
        double r200669 = pow(r200668, r200662);
        double r200670 = -r200669;
        double r200671 = l;
        double r200672 = r200658 - r200659;
        double r200673 = fabs(r200672);
        double r200674 = r200671 - r200673;
        double r200675 = r200670 - r200674;
        double r200676 = exp(r200675);
        double r200677 = r200666 * r200676;
        return r200677;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r200678 = m;
        double r200679 = n;
        double r200680 = r200678 + r200679;
        double r200681 = 2.0;
        double r200682 = r200680 / r200681;
        double r200683 = M;
        double r200684 = r200682 - r200683;
        double r200685 = pow(r200684, r200681);
        double r200686 = -r200685;
        double r200687 = l;
        double r200688 = r200678 - r200679;
        double r200689 = fabs(r200688);
        double r200690 = r200687 - r200689;
        double r200691 = r200686 - r200690;
        double r200692 = exp(r200691);
        return r200692;
}

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

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

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

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

Reproduce

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