示例#1
0
        public override void Initialize(INumberTable numberTable)
        {
            var m = numberTable.Matrix;

            for (int i = 0; i < numberTable.Rows; i++)
            {
                double mean = 0;
                for (int j = 0; j < numberTable.Columns; j++)
                {
                    mean += m[i][j];
                }
                mean /= numberTable.Columns;
                for (int j = 0; j < numberTable.Columns; j++)
                {
                    m[i][j] -= mean;
                }
            }

            // Estimates the maximal variance.
            maxVariance = 0;
            Random rg = new System.Random();

            for (int n = 0; n < 500; n++)
            {
                int i = rg.Next() % numberTable.Rows;
                int j = rg.Next() % numberTable.Rows;
                for (int k = 0; k < numberTable.Columns; k++)
                {
                    maxVariance = Math.Max(maxVariance, Math.Abs(m[i][k] * m[j][k]));
                }
            }
        }
示例#2
0
 public override void Initialize(VisuMap.Script.INumberTable numberTable)
 {
     normalizeFactor = 1e-10;
     for (int k = 0; k < 1000; k++)
     {
         var    a = numberTable.Matrix[k * 2903 % numberTable.Rows];
         var    b = numberTable.Matrix[k * 5231 % numberTable.Rows];
         double d = 0;
         for (int j = 0; j < numberTable.Columns; j++)
         {
             double diff = a[j] - b[j];
             d += diff * diff;
         }
         normalizeFactor = Math.Max(normalizeFactor, d);
     }
 }