Average Error: 15.3 → 1.3
Time: 39.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)}\]
\[\frac{1}{e^{(\left(\frac{m + n}{2} - M\right) \cdot \left(\frac{m + n}{2} - M\right) + \ell)_* - \left|m - n\right|}}\]
double f(double K, double m, double n, double M, double l) {
        double r11056496 = K;
        double r11056497 = m;
        double r11056498 = n;
        double r11056499 = r11056497 + r11056498;
        double r11056500 = r11056496 * r11056499;
        double r11056501 = 2.0;
        double r11056502 = r11056500 / r11056501;
        double r11056503 = M;
        double r11056504 = r11056502 - r11056503;
        double r11056505 = cos(r11056504);
        double r11056506 = r11056499 / r11056501;
        double r11056507 = r11056506 - r11056503;
        double r11056508 = pow(r11056507, r11056501);
        double r11056509 = -r11056508;
        double r11056510 = l;
        double r11056511 = r11056497 - r11056498;
        double r11056512 = fabs(r11056511);
        double r11056513 = r11056510 - r11056512;
        double r11056514 = r11056509 - r11056513;
        double r11056515 = exp(r11056514);
        double r11056516 = r11056505 * r11056515;
        return r11056516;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r11056517 = 1.0;
        double r11056518 = m;
        double r11056519 = n;
        double r11056520 = r11056518 + r11056519;
        double r11056521 = 2.0;
        double r11056522 = r11056520 / r11056521;
        double r11056523 = M;
        double r11056524 = r11056522 - r11056523;
        double r11056525 = l;
        double r11056526 = fma(r11056524, r11056524, r11056525);
        double r11056527 = r11056518 - r11056519;
        double r11056528 = fabs(r11056527);
        double r11056529 = r11056526 - r11056528;
        double r11056530 = exp(r11056529);
        double r11056531 = r11056517 / r11056530;
        return r11056531;
}

\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)}
\frac{1}{e^{(\left(\frac{m + n}{2} - M\right) \cdot \left(\frac{m + n}{2} - M\right) + \ell)_* - \left|m - n\right|}}

Error

Bits error versus K

Bits error versus m

Bits error versus n

Bits error versus M

Bits error versus l

Derivation

  1. Initial program 15.3

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

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

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

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

Reproduce

herbie shell --seed 2019101 +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)))))))