Average Error: 15.2 → 1.2
Time: 13.0s
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^{\mathsf{fma}\left(-\sqrt[3]{{\left(\frac{m + n}{2} - M\right)}^{2}} \cdot \sqrt[3]{{\left(\frac{m + n}{2} - M\right)}^{2}}, \sqrt[3]{{\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)}
e^{\mathsf{fma}\left(-\sqrt[3]{{\left(\frac{m + n}{2} - M\right)}^{2}} \cdot \sqrt[3]{{\left(\frac{m + n}{2} - M\right)}^{2}}, \sqrt[3]{{\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 r170298 = K;
        double r170299 = m;
        double r170300 = n;
        double r170301 = r170299 + r170300;
        double r170302 = r170298 * r170301;
        double r170303 = 2.0;
        double r170304 = r170302 / r170303;
        double r170305 = M;
        double r170306 = r170304 - r170305;
        double r170307 = cos(r170306);
        double r170308 = r170301 / r170303;
        double r170309 = r170308 - r170305;
        double r170310 = pow(r170309, r170303);
        double r170311 = -r170310;
        double r170312 = l;
        double r170313 = r170299 - r170300;
        double r170314 = fabs(r170313);
        double r170315 = r170312 - r170314;
        double r170316 = r170311 - r170315;
        double r170317 = exp(r170316);
        double r170318 = r170307 * r170317;
        return r170318;
}

double f(double __attribute__((unused)) K, double m, double n, double M, double l) {
        double r170319 = m;
        double r170320 = n;
        double r170321 = r170319 + r170320;
        double r170322 = 2.0;
        double r170323 = r170321 / r170322;
        double r170324 = M;
        double r170325 = r170323 - r170324;
        double r170326 = pow(r170325, r170322);
        double r170327 = cbrt(r170326);
        double r170328 = r170327 * r170327;
        double r170329 = -r170328;
        double r170330 = l;
        double r170331 = r170319 - r170320;
        double r170332 = fabs(r170331);
        double r170333 = r170330 - r170332;
        double r170334 = -r170333;
        double r170335 = fma(r170329, r170327, r170334);
        double r170336 = exp(r170335);
        return r170336;
}

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

    \[\leadsto \color{blue}{1} \cdot e^{\left(-{\left(\frac{m + n}{2} - M\right)}^{2}\right) - \left(\ell - \left|m - n\right|\right)}\]
  3. Using strategy rm
  4. Applied add-cube-cbrt1.2

    \[\leadsto 1 \cdot e^{\left(-\color{blue}{\left(\sqrt[3]{{\left(\frac{m + n}{2} - M\right)}^{2}} \cdot \sqrt[3]{{\left(\frac{m + n}{2} - M\right)}^{2}}\right) \cdot \sqrt[3]{{\left(\frac{m + n}{2} - M\right)}^{2}}}\right) - \left(\ell - \left|m - n\right|\right)}\]
  5. Applied distribute-lft-neg-in1.2

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

    \[\leadsto 1 \cdot e^{\color{blue}{\mathsf{fma}\left(-\sqrt[3]{{\left(\frac{m + n}{2} - M\right)}^{2}} \cdot \sqrt[3]{{\left(\frac{m + n}{2} - M\right)}^{2}}, \sqrt[3]{{\left(\frac{m + n}{2} - M\right)}^{2}}, -\left(\ell - \left|m - n\right|\right)\right)}}\]
  7. Final simplification1.2

    \[\leadsto e^{\mathsf{fma}\left(-\sqrt[3]{{\left(\frac{m + n}{2} - M\right)}^{2}} \cdot \sqrt[3]{{\left(\frac{m + n}{2} - M\right)}^{2}}, \sqrt[3]{{\left(\frac{m + n}{2} - M\right)}^{2}}, -\left(\ell - \left|m - n\right|\right)\right)}\]

Reproduce

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