Average Error: 15.3 → 1.3
Time: 1.3m
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(\ell - \left|m - n\right|\right) + \left(\frac{m + n}{2} - M\right) \cdot \left(\frac{m + n}{2} - M\right)}}\]
double f(double K, double m, double n, double M, double l) {
        double r25122348 = K;
        double r25122349 = m;
        double r25122350 = n;
        double r25122351 = r25122349 + r25122350;
        double r25122352 = r25122348 * r25122351;
        double r25122353 = 2.0;
        double r25122354 = r25122352 / r25122353;
        double r25122355 = M;
        double r25122356 = r25122354 - r25122355;
        double r25122357 = cos(r25122356);
        double r25122358 = r25122351 / r25122353;
        double r25122359 = r25122358 - r25122355;
        double r25122360 = pow(r25122359, r25122353);
        double r25122361 = -r25122360;
        double r25122362 = l;
        double r25122363 = r25122349 - r25122350;
        double r25122364 = fabs(r25122363);
        double r25122365 = r25122362 - r25122364;
        double r25122366 = r25122361 - r25122365;
        double r25122367 = exp(r25122366);
        double r25122368 = r25122357 * r25122367;
        return r25122368;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r25122369 = 1.0;
        double r25122370 = l;
        double r25122371 = m;
        double r25122372 = n;
        double r25122373 = r25122371 - r25122372;
        double r25122374 = fabs(r25122373);
        double r25122375 = r25122370 - r25122374;
        double r25122376 = r25122371 + r25122372;
        double r25122377 = 2.0;
        double r25122378 = r25122376 / r25122377;
        double r25122379 = M;
        double r25122380 = r25122378 - r25122379;
        double r25122381 = r25122380 * r25122380;
        double r25122382 = r25122375 + r25122381;
        double r25122383 = exp(r25122382);
        double r25122384 = r25122369 / r25122383;
        return r25122384;
}

\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(\ell - \left|m - n\right|\right) + \left(\frac{m + n}{2} - M\right) \cdot \left(\frac{m + n}{2} - M\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.3

    \[\leadsto \color{blue}{\frac{\cos \left(\frac{\left(m + n\right) \cdot K}{2} - M\right)}{e^{\left(\frac{m + n}{2} - M\right) \cdot \left(\frac{m + n}{2} - M\right) + \left(\ell - \left|m - n\right|\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) + \left(\ell - \left|m - n\right|\right)}}\]
  4. Final simplification1.3

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

Reproduce

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