Average Error: 15.2 → 1.4
Time: 9.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 r117311 = K;
        double r117312 = m;
        double r117313 = n;
        double r117314 = r117312 + r117313;
        double r117315 = r117311 * r117314;
        double r117316 = 2.0;
        double r117317 = r117315 / r117316;
        double r117318 = M;
        double r117319 = r117317 - r117318;
        double r117320 = cos(r117319);
        double r117321 = r117314 / r117316;
        double r117322 = r117321 - r117318;
        double r117323 = pow(r117322, r117316);
        double r117324 = -r117323;
        double r117325 = l;
        double r117326 = r117312 - r117313;
        double r117327 = fabs(r117326);
        double r117328 = r117325 - r117327;
        double r117329 = r117324 - r117328;
        double r117330 = exp(r117329);
        double r117331 = r117320 * r117330;
        return r117331;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r117332 = m;
        double r117333 = n;
        double r117334 = r117332 + r117333;
        double r117335 = 2.0;
        double r117336 = r117334 / r117335;
        double r117337 = M;
        double r117338 = r117336 - r117337;
        double r117339 = pow(r117338, r117335);
        double r117340 = -r117339;
        double r117341 = l;
        double r117342 = r117332 - r117333;
        double r117343 = fabs(r117342);
        double r117344 = r117341 - r117343;
        double r117345 = r117340 - r117344;
        double r117346 = exp(r117345);
        return r117346;
}

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.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)}\]
  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 2019356 
(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)))))))