Ejemplo n.º 1
0
        public Complex Value(ParyX x, int pow)
        {
            int Xk = x.ElementAt(k);
            Dictionary <int, Complex> pows;

            if (values.ContainsKey(Xk))
            {
                pows = values[Xk];
                if (values[Xk].ContainsKey(pow))
                {
                    return(values[Xk][pow]);
                }
            }
            else
            {
                pows = new Dictionary <int, Complex>();
                if (!values.ContainsKey(Xk))
                {
                    values.Add(Xk, pows);
                }
            }
            double  PK    = 1d / Pk;
            double  phi   = 2d * Math.PI * Xk * pow * PK;
            Complex value = new Complex(Math.Cos(phi), Math.Sin(phi));

            if (!pows.ContainsKey(pow))
            {
                pows.Add(pow, value);
            }
            return(value);
        }
Ejemplo n.º 2
0
 public Complex Value(ParyX x)
 {
     lock (syncLock) {
         if (cache.ContainsKey(x))
         {
             return(cache[x]);
         }
         Complex value = ONE_RE;
         for (int j = 0; j < Rj.Count; j++)
         {
             value *= (Rj[j].Value(x, n.Ak(Rj[j].GetK())));
         }
         cache.Add(x, value);
         return(value);
     }
 }
Ejemplo n.º 3
0
 public Complex Value(ParyX x)
 {
     return(Value(x, 1));
 }