Class MatrixObject

  • All Implemented Interfaces:
    Serializable
    Direct Known Subclasses:
    MatrixObjectFuture

    public class MatrixObject
    extends CacheableData<MatrixBlock>
    Represents a matrix in control program. This class contains method to read matrices from HDFS and convert them to a specific format/representation. It is also able to write several formats/representation of matrices to HDFS. IMPORTANT: Preserve one-to-one correspondence between MatrixObject and MatrixBlock objects, for cache purposes. Do not change a MatrixBlock object without informing its MatrixObject object.
    See Also:
    Serialized Form
    • Constructor Detail

      • MatrixObject

        public MatrixObject​(Types.ValueType vt,
                            String file)
        Constructor that takes the value type and the HDFS filename.
        Parameters:
        vt - value type
        file - file name
      • MatrixObject

        public MatrixObject​(Types.ValueType vt,
                            String file,
                            MetaData mtd)
        Constructor that takes the value type, HDFS filename and associated metadata.
        Parameters:
        vt - value type
        file - file name
        mtd - metadata
      • MatrixObject

        public MatrixObject​(Types.ValueType vt,
                            String file,
                            MetaData mtd,
                            MatrixBlock data)
        Constructor that takes the value type, HDFS filename and associated metadata and a MatrixBlock used for creation after serialization
        Parameters:
        vt - value type
        file - file name
        mtd - metadata
        data - matrix block data
      • MatrixObject

        public MatrixObject​(MatrixObject mo)
        Copy constructor that copies meta data but NO data.
        Parameters:
        mo - matrix object
    • Method Detail

      • isDiag

        public boolean isDiag()
      • setDiag

        public void setDiag​(boolean diag)
      • setMarkForLinCache

        public void setMarkForLinCache​(boolean mark)
      • isMarked

        public boolean isMarked()
      • getNnz

        public long getNnz()
      • getSparsity

        public double getSparsity()
      • unsetPartitioned

        public void unsetPartitioned()
      • isPartitioned

        public boolean isPartitioned()
      • getPartitionSize

        public int getPartitionSize()
      • setInMemoryPartition

        public void setInMemoryPartition​(MatrixBlock block)
      • readMatrixPartition

        public MatrixBlock readMatrixPartition​(IndexRange pred)
        NOTE: for reading matrix partitions, we could cache (in its real sense) the read block with soft references (no need for eviction, as partitioning only applied for read-only matrices). However, since we currently only support row- and column-wise partitioning caching is not applied yet. This could be changed once we also support column-block-wise and row-block-wise. Furthermore, as we reject to partition vectors and support only full row or column indexing, no metadata (apart from the partition flag) is required.
        Parameters:
        pred - index range
        Returns:
        matrix block
      • getPartitionFileName

        public String getPartitionFileName​(IndexRange pred,
                                           int blen)