Average Error: 15.6 → 1.4
Time: 36.4s
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|m - n\right| - \ell\right) - {\left(\frac{m + n}{2} - M\right)}^{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)}
e^{\left(\left|m - n\right| - \ell\right) - {\left(\frac{m + n}{2} - M\right)}^{2}}
double f(double K, double m, double n, double M, double l) {
        double r4148500 = K;
        double r4148501 = m;
        double r4148502 = n;
        double r4148503 = r4148501 + r4148502;
        double r4148504 = r4148500 * r4148503;
        double r4148505 = 2.0;
        double r4148506 = r4148504 / r4148505;
        double r4148507 = M;
        double r4148508 = r4148506 - r4148507;
        double r4148509 = cos(r4148508);
        double r4148510 = r4148503 / r4148505;
        double r4148511 = r4148510 - r4148507;
        double r4148512 = pow(r4148511, r4148505);
        double r4148513 = -r4148512;
        double r4148514 = l;
        double r4148515 = r4148501 - r4148502;
        double r4148516 = fabs(r4148515);
        double r4148517 = r4148514 - r4148516;
        double r4148518 = r4148513 - r4148517;
        double r4148519 = exp(r4148518);
        double r4148520 = r4148509 * r4148519;
        return r4148520;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r4148521 = m;
        double r4148522 = n;
        double r4148523 = r4148521 - r4148522;
        double r4148524 = fabs(r4148523);
        double r4148525 = l;
        double r4148526 = r4148524 - r4148525;
        double r4148527 = r4148521 + r4148522;
        double r4148528 = 2.0;
        double r4148529 = r4148527 / r4148528;
        double r4148530 = M;
        double r4148531 = r4148529 - r4148530;
        double r4148532 = pow(r4148531, r4148528);
        double r4148533 = r4148526 - r4148532;
        double r4148534 = exp(r4148533);
        return r4148534;
}

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

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

    \[\leadsto \color{blue}{\cos \left(\frac{\left(m + n\right) \cdot K}{2} - M\right) \cdot e^{\left(\left|m - n\right| - \ell\right) - {\left(\frac{m + n}{2} - M\right)}^{2}}}\]
  3. Taylor expanded around 0 1.4

    \[\leadsto \color{blue}{1} \cdot e^{\left(\left|m - n\right| - \ell\right) - {\left(\frac{m + n}{2} - M\right)}^{2}}\]
  4. Final simplification1.4

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

Reproduce

herbie shell --seed 2019172 +o rules:numerics
(FPCore (K m n M l)
  :name "Maksimov and Kolovsky, Equation (32)"
  (* (cos (- (/ (* K (+ m n)) 2.0) M)) (exp (- (- (pow (- (/ (+ m n) 2.0) M) 2.0)) (- l (fabs (- m n)))))))