Average Error: 15.0 → 1.3
Time: 23.7s
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 r117213 = K;
        double r117214 = m;
        double r117215 = n;
        double r117216 = r117214 + r117215;
        double r117217 = r117213 * r117216;
        double r117218 = 2.0;
        double r117219 = r117217 / r117218;
        double r117220 = M;
        double r117221 = r117219 - r117220;
        double r117222 = cos(r117221);
        double r117223 = r117216 / r117218;
        double r117224 = r117223 - r117220;
        double r117225 = pow(r117224, r117218);
        double r117226 = -r117225;
        double r117227 = l;
        double r117228 = r117214 - r117215;
        double r117229 = fabs(r117228);
        double r117230 = r117227 - r117229;
        double r117231 = r117226 - r117230;
        double r117232 = exp(r117231);
        double r117233 = r117222 * r117232;
        return r117233;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r117234 = m;
        double r117235 = n;
        double r117236 = r117234 + r117235;
        double r117237 = 2.0;
        double r117238 = r117236 / r117237;
        double r117239 = M;
        double r117240 = r117238 - r117239;
        double r117241 = pow(r117240, r117237);
        double r117242 = -r117241;
        double r117243 = l;
        double r117244 = r117234 - r117235;
        double r117245 = fabs(r117244);
        double r117246 = r117243 - r117245;
        double r117247 = r117242 - r117246;
        double r117248 = exp(r117247);
        return r117248;
}

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.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 2019351 +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)))))))