Average Error: 15.0 → 1.4
Time: 8.2s
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 r149820 = K;
        double r149821 = m;
        double r149822 = n;
        double r149823 = r149821 + r149822;
        double r149824 = r149820 * r149823;
        double r149825 = 2.0;
        double r149826 = r149824 / r149825;
        double r149827 = M;
        double r149828 = r149826 - r149827;
        double r149829 = cos(r149828);
        double r149830 = r149823 / r149825;
        double r149831 = r149830 - r149827;
        double r149832 = pow(r149831, r149825);
        double r149833 = -r149832;
        double r149834 = l;
        double r149835 = r149821 - r149822;
        double r149836 = fabs(r149835);
        double r149837 = r149834 - r149836;
        double r149838 = r149833 - r149837;
        double r149839 = exp(r149838);
        double r149840 = r149829 * r149839;
        return r149840;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r149841 = m;
        double r149842 = n;
        double r149843 = r149841 + r149842;
        double r149844 = 2.0;
        double r149845 = r149843 / r149844;
        double r149846 = M;
        double r149847 = r149845 - r149846;
        double r149848 = pow(r149847, r149844);
        double r149849 = -r149848;
        double r149850 = l;
        double r149851 = r149841 - r149842;
        double r149852 = fabs(r149851);
        double r149853 = r149850 - r149852;
        double r149854 = r149849 - r149853;
        double r149855 = exp(r149854);
        return r149855;
}

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

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

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

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

Reproduce

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