Average Error: 14.8 → 1.3
Time: 26.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 r4249302 = K;
        double r4249303 = m;
        double r4249304 = n;
        double r4249305 = r4249303 + r4249304;
        double r4249306 = r4249302 * r4249305;
        double r4249307 = 2.0;
        double r4249308 = r4249306 / r4249307;
        double r4249309 = M;
        double r4249310 = r4249308 - r4249309;
        double r4249311 = cos(r4249310);
        double r4249312 = r4249305 / r4249307;
        double r4249313 = r4249312 - r4249309;
        double r4249314 = pow(r4249313, r4249307);
        double r4249315 = -r4249314;
        double r4249316 = l;
        double r4249317 = r4249303 - r4249304;
        double r4249318 = fabs(r4249317);
        double r4249319 = r4249316 - r4249318;
        double r4249320 = r4249315 - r4249319;
        double r4249321 = exp(r4249320);
        double r4249322 = r4249311 * r4249321;
        return r4249322;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r4249323 = m;
        double r4249324 = n;
        double r4249325 = r4249323 + r4249324;
        double r4249326 = 2.0;
        double r4249327 = r4249325 / r4249326;
        double r4249328 = M;
        double r4249329 = r4249327 - r4249328;
        double r4249330 = pow(r4249329, r4249326);
        double r4249331 = -r4249330;
        double r4249332 = l;
        double r4249333 = r4249323 - r4249324;
        double r4249334 = fabs(r4249333);
        double r4249335 = r4249332 - r4249334;
        double r4249336 = r4249331 - r4249335;
        double r4249337 = exp(r4249336);
        return r4249337;
}

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 14.8

    \[\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 2019164 +o rules:numerics
(FPCore (K m n M l)
  :name "Maksimov and Kolovsky, Equation (32)"
  (* (cos (- (/ (* K (+ m n)) 2) M)) (exp (- (- (pow (- (/ (+ m n) 2) M) 2)) (- l (fabs (- m n)))))))