Average Error: 15.4 → 1.9
Time: 38.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|m - n\right| - \mathsf{fma}\left(\frac{n + m}{2} - M, \frac{n + m}{2} - M, \ell\right)} \cdot \cos \left(\left(\left(\frac{K}{\sqrt{2}}\right)\right) \cdot \left(\left(\frac{n + m}{\sqrt{2}}\right)\right) - M\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|m - n\right| - \mathsf{fma}\left(\frac{n + m}{2} - M, \frac{n + m}{2} - M, \ell\right)} \cdot \cos \left(\left(\left(\frac{K}{\sqrt{2}}\right)\right) \cdot \left(\left(\frac{n + m}{\sqrt{2}}\right)\right) - M\right)
double f(double K, double m, double n, double M, double l) {
        double r3769953 = K;
        double r3769954 = m;
        double r3769955 = n;
        double r3769956 = r3769954 + r3769955;
        double r3769957 = r3769953 * r3769956;
        double r3769958 = 2.0;
        double r3769959 = r3769957 / r3769958;
        double r3769960 = M;
        double r3769961 = r3769959 - r3769960;
        double r3769962 = cos(r3769961);
        double r3769963 = r3769956 / r3769958;
        double r3769964 = r3769963 - r3769960;
        double r3769965 = pow(r3769964, r3769958);
        double r3769966 = -r3769965;
        double r3769967 = l;
        double r3769968 = r3769954 - r3769955;
        double r3769969 = fabs(r3769968);
        double r3769970 = r3769967 - r3769969;
        double r3769971 = r3769966 - r3769970;
        double r3769972 = exp(r3769971);
        double r3769973 = r3769962 * r3769972;
        return r3769973;
}

double f(double K, double m, double n, double M, double l) {
        double r3769974 = m;
        double r3769975 = n;
        double r3769976 = r3769974 - r3769975;
        double r3769977 = fabs(r3769976);
        double r3769978 = r3769975 + r3769974;
        double r3769979 = 2.0;
        double r3769980 = r3769978 / r3769979;
        double r3769981 = M;
        double r3769982 = r3769980 - r3769981;
        double r3769983 = l;
        double r3769984 = fma(r3769982, r3769982, r3769983);
        double r3769985 = r3769977 - r3769984;
        double r3769986 = exp(r3769985);
        double r3769987 = K;
        double r3769988 = sqrt(r3769979);
        double r3769989 = r3769987 / r3769988;
        double r3769990 = /* ERROR: no posit support in C */;
        double r3769991 = /* ERROR: no posit support in C */;
        double r3769992 = r3769978 / r3769988;
        double r3769993 = /* ERROR: no posit support in C */;
        double r3769994 = /* ERROR: no posit support in C */;
        double r3769995 = r3769991 * r3769994;
        double r3769996 = r3769995 - r3769981;
        double r3769997 = cos(r3769996);
        double r3769998 = r3769986 * r3769997;
        return r3769998;
}

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

    \[\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}{\cos \left(K \cdot \frac{m + n}{2} - M\right) \cdot e^{\left|m - n\right| - \mathsf{fma}\left(\frac{m + n}{2} - M, \frac{m + n}{2} - M, \ell\right)}}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt15.3

    \[\leadsto \cos \left(K \cdot \frac{m + n}{\color{blue}{\sqrt{2} \cdot \sqrt{2}}} - M\right) \cdot e^{\left|m - n\right| - \mathsf{fma}\left(\frac{m + n}{2} - M, \frac{m + n}{2} - M, \ell\right)}\]
  5. Applied *-un-lft-identity15.3

    \[\leadsto \cos \left(K \cdot \frac{m + \color{blue}{1 \cdot n}}{\sqrt{2} \cdot \sqrt{2}} - M\right) \cdot e^{\left|m - n\right| - \mathsf{fma}\left(\frac{m + n}{2} - M, \frac{m + n}{2} - M, \ell\right)}\]
  6. Applied *-un-lft-identity15.3

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

    \[\leadsto \cos \left(K \cdot \frac{\color{blue}{1 \cdot \left(m + n\right)}}{\sqrt{2} \cdot \sqrt{2}} - M\right) \cdot e^{\left|m - n\right| - \mathsf{fma}\left(\frac{m + n}{2} - M, \frac{m + n}{2} - M, \ell\right)}\]
  8. Applied times-frac15.3

    \[\leadsto \cos \left(K \cdot \color{blue}{\left(\frac{1}{\sqrt{2}} \cdot \frac{m + n}{\sqrt{2}}\right)} - M\right) \cdot e^{\left|m - n\right| - \mathsf{fma}\left(\frac{m + n}{2} - M, \frac{m + n}{2} - M, \ell\right)}\]
  9. Applied associate-*r*15.3

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

    \[\leadsto \cos \left(\color{blue}{\frac{K}{\sqrt{2}}} \cdot \frac{m + n}{\sqrt{2}} - M\right) \cdot e^{\left|m - n\right| - \mathsf{fma}\left(\frac{m + n}{2} - M, \frac{m + n}{2} - M, \ell\right)}\]
  11. Using strategy rm
  12. Applied insert-posit162.7

    \[\leadsto \cos \left(\frac{K}{\sqrt{2}} \cdot \color{blue}{\left(\left(\frac{m + n}{\sqrt{2}}\right)\right)} - M\right) \cdot e^{\left|m - n\right| - \mathsf{fma}\left(\frac{m + n}{2} - M, \frac{m + n}{2} - M, \ell\right)}\]
  13. Using strategy rm
  14. Applied insert-posit161.9

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

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

Reproduce

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