Average Error: 15.3 → 1.2
Time: 4.6s
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 r156646 = K;
        double r156647 = m;
        double r156648 = n;
        double r156649 = r156647 + r156648;
        double r156650 = r156646 * r156649;
        double r156651 = 2.0;
        double r156652 = r156650 / r156651;
        double r156653 = M;
        double r156654 = r156652 - r156653;
        double r156655 = cos(r156654);
        double r156656 = r156649 / r156651;
        double r156657 = r156656 - r156653;
        double r156658 = pow(r156657, r156651);
        double r156659 = -r156658;
        double r156660 = l;
        double r156661 = r156647 - r156648;
        double r156662 = fabs(r156661);
        double r156663 = r156660 - r156662;
        double r156664 = r156659 - r156663;
        double r156665 = exp(r156664);
        double r156666 = r156655 * r156665;
        return r156666;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r156667 = m;
        double r156668 = n;
        double r156669 = r156667 + r156668;
        double r156670 = 2.0;
        double r156671 = r156669 / r156670;
        double r156672 = M;
        double r156673 = r156671 - r156672;
        double r156674 = pow(r156673, r156670);
        double r156675 = -r156674;
        double r156676 = l;
        double r156677 = r156667 - r156668;
        double r156678 = fabs(r156677);
        double r156679 = r156676 - r156678;
        double r156680 = r156675 - r156679;
        double r156681 = exp(r156680);
        return r156681;
}

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

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

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

Reproduce

herbie shell --seed 2020024 
(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)))))))