Average Error: 15.3 → 1.4
Time: 30.6s
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({\left(\frac{m + n}{2} - M\right)}^{2} + \left(\ell - \left|m - n\right|\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)}
\frac{1}{{e}^{\left({\left(\frac{m + n}{2} - M\right)}^{2} + \left(\ell - \left|m - n\right|\right)\right)}}
double f(double K, double m, double n, double M, double l) {
        double r126102 = K;
        double r126103 = m;
        double r126104 = n;
        double r126105 = r126103 + r126104;
        double r126106 = r126102 * r126105;
        double r126107 = 2.0;
        double r126108 = r126106 / r126107;
        double r126109 = M;
        double r126110 = r126108 - r126109;
        double r126111 = cos(r126110);
        double r126112 = r126105 / r126107;
        double r126113 = r126112 - r126109;
        double r126114 = pow(r126113, r126107);
        double r126115 = -r126114;
        double r126116 = l;
        double r126117 = r126103 - r126104;
        double r126118 = fabs(r126117);
        double r126119 = r126116 - r126118;
        double r126120 = r126115 - r126119;
        double r126121 = exp(r126120);
        double r126122 = r126111 * r126121;
        return r126122;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r126123 = 1.0;
        double r126124 = exp(1.0);
        double r126125 = m;
        double r126126 = n;
        double r126127 = r126125 + r126126;
        double r126128 = 2.0;
        double r126129 = r126127 / r126128;
        double r126130 = M;
        double r126131 = r126129 - r126130;
        double r126132 = pow(r126131, r126128);
        double r126133 = l;
        double r126134 = r126125 - r126126;
        double r126135 = fabs(r126134);
        double r126136 = r126133 - r126135;
        double r126137 = r126132 + r126136;
        double r126138 = pow(r126124, r126137);
        double r126139 = r126123 / r126138;
        return r126139;
}

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.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{K \cdot \left(m + n\right)}{2} - M\right)}{e^{{\left(\frac{m + n}{2} - M\right)}^{2} + \left(\ell - \left|m - n\right|\right)}}}\]
  3. Taylor expanded around 0 1.4

    \[\leadsto \frac{\color{blue}{1}}{e^{{\left(\frac{m + n}{2} - M\right)}^{2} + \left(\ell - \left|m - n\right|\right)}}\]
  4. Using strategy rm
  5. Applied *-un-lft-identity1.4

    \[\leadsto \frac{1}{e^{\color{blue}{1 \cdot \left({\left(\frac{m + n}{2} - M\right)}^{2} + \left(\ell - \left|m - n\right|\right)\right)}}}\]
  6. Applied exp-prod1.4

    \[\leadsto \frac{1}{\color{blue}{{\left(e^{1}\right)}^{\left({\left(\frac{m + n}{2} - M\right)}^{2} + \left(\ell - \left|m - n\right|\right)\right)}}}\]
  7. Simplified1.4

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

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

Reproduce

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