Average Error: 15.2 → 1.4
Time: 11.9s
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 r136485 = K;
        double r136486 = m;
        double r136487 = n;
        double r136488 = r136486 + r136487;
        double r136489 = r136485 * r136488;
        double r136490 = 2.0;
        double r136491 = r136489 / r136490;
        double r136492 = M;
        double r136493 = r136491 - r136492;
        double r136494 = cos(r136493);
        double r136495 = r136488 / r136490;
        double r136496 = r136495 - r136492;
        double r136497 = pow(r136496, r136490);
        double r136498 = -r136497;
        double r136499 = l;
        double r136500 = r136486 - r136487;
        double r136501 = fabs(r136500);
        double r136502 = r136499 - r136501;
        double r136503 = r136498 - r136502;
        double r136504 = exp(r136503);
        double r136505 = r136494 * r136504;
        return r136505;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r136506 = m;
        double r136507 = n;
        double r136508 = r136506 + r136507;
        double r136509 = 2.0;
        double r136510 = r136508 / r136509;
        double r136511 = M;
        double r136512 = r136510 - r136511;
        double r136513 = pow(r136512, r136509);
        double r136514 = -r136513;
        double r136515 = l;
        double r136516 = r136506 - r136507;
        double r136517 = fabs(r136516);
        double r136518 = r136515 - r136517;
        double r136519 = r136514 - r136518;
        double r136520 = exp(r136519);
        return r136520;
}

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