Exemple #1
0
        public SubMatrix UnionStar(SubMatrix subMatrix)
        {
            var result = new SubMatrix(this);

            result.rowIndices.UnionWith(subMatrix.rowIndices);
            result.columnIndices.IntersectWith(subMatrix.columnIndices);
            return(result);
        }
Exemple #2
0
 private static bool ContainsNoSuperMatrixOf(HashSet <SubMatrix> set, SubMatrix subMatrixA)
 {
     foreach (var subMatrixB in set)
     {
         if (subMatrixA.IsProperSubMatrixOf(subMatrixB))
         {
             return(false);
         }
     }
     return(true);
 }
Exemple #3
0
        private static HashSet <SubMatrix> IntializeCover(IntMatrix invertedAdjacency)
        {
            var cover = new HashSet <SubMatrix>();

            for (int i = 0; i < invertedAdjacency.Height; i++)
            {
                var subMatrix = new SubMatrix();

                for (int j = 0; j < invertedAdjacency.Width; j++)
                {
                    if (invertedAdjacency[i, j] == 1)
                    {
                        subMatrix.columnIndices.Add(j);
                    }
                }

                if (subMatrix.columnIndices.Count > 0)
                {
                    subMatrix.rowIndices.Add(i);
                    cover.Add(subMatrix);
                }
            }
            return(cover);
        }
Exemple #4
0
 public bool IsSubMatrixOf(SubMatrix subMatrix)
 {
     return(rowIndices.IsSubsetOf(subMatrix.rowIndices) &&
            columnIndices.IsSubsetOf(subMatrix.columnIndices));
 }
Exemple #5
0
 public SubMatrix(SubMatrix matrix)
 {
     rowIndices    = new HashSet <int>(matrix.rowIndices);
     columnIndices = new HashSet <int>(matrix.columnIndices);
 }