Example #1
0
        /// <summary>
        /// Compute kth multipole coefficient of a set of points ps around a centre z0
        /// </summary>
        /// <param name="k">Coefficient index</param>
        /// <param name="ps">Set of points</param>
        /// <returns></returns>
        private Complex compute(int k, Point[] ps)
        {
            int     m  = ps.Length;
            Complex ak = new Complex(0.0);

            if (k == 0)
            {
                ak.re = m;
            }
            else
            {
                for (int i = 0; i < m; ++i)
                {
                    Point   q  = ps[i];
                    Complex pc = new Complex(q.X, q.Y);
                    ak -= Complex.Pow(pc - z0, k);
                }
                ak.divideBy(k);
            }
            return(ak);
        }
 /// <summary>
 /// Compute kth multipole coefficient of a set of points ps around a centre z0
 /// </summary>
 /// <param name="k">Coefficient index</param>
 /// <param name="ps">Set of points</param>
 /// <returns></returns>
 private Complex compute(int k, Point[] ps)
 {
     int m = ps.Length;
     Complex ak = new Complex(0.0);
     if (k == 0)
     {
         ak.re = m;
     }
     else
     {
         for (int i = 0; i < m; ++i)
         {
             Point q = ps[i];
             Complex pc = new Complex(q.X, q.Y);
             ak -= Complex.Pow(pc - z0, k);
         }
         ak.divideBy(k);
     }
     return ak;
 }