org.apache.sysml.runtime.matrix.data

Class SparseRowVector

    • Field Summary

      Fields 
      Modifier and Type Field and Description
      static int initialCapacity 
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      void append(int col, double v)
      Appends a value to the end of the sparse row.
      int capacity() 
      void compact()
      In-place compaction of non-zero-entries; removes zero entries and shifts non-zero entries to the left if necessary.
      void copy(SparseRow that) 
      void deleteIndexRange(int lowerCol, int upperCol) 
      double get(int col)
      Gets the value of a specified column.
      int[] indexes()
      Get the index array of non-zero entries, co-aligned with the array of values.
      boolean isEmpty()
      Indicates if the sparse row is empty, i.e., if is has size zero.
      void reset(int estnns, int maxnns)
      Resets the sparse row to empty, after this call size and isEmpty are guaranteed to return 0 and true, respectively.
      int searchIndexesFirstGT(int col) 
      int searchIndexesFirstGTE(int col) 
      int searchIndexesFirstLTE(int col) 
      boolean set(int col, double v)
      Sets the value of a specified column with awareness of potential overwrites or deletes (set to value zero).
      void setIndexes(int[] i) 
      void setIndexRange(int lowerCol, int upperCol, double[] v, int vix, int len)
      Inserts a dense vector into a column range; calling this methods helps to avoid repeated shifting of remaining values/indexes for every set value.
      void setSize(int newsize) 
      void setValues(double[] d) 
      int size()
      Get the number of non-zero values of the sparse row.
      void sort()
      In-place sort of column-index value pairs in order to allow binary search after constant-time append was used for reading unordered sparse rows.
      double[] values()
      Get the value array of non-zero entries, co-aligned with the array of indexes.
    • Constructor Detail

      • SparseRowVector

        public SparseRowVector()
      • SparseRowVector

        public SparseRowVector(int capacity)
      • SparseRowVector

        public SparseRowVector(int estnnz,
                               int maxnnz)
      • SparseRowVector

        public SparseRowVector(SparseRow that)
    • Method Detail

      • size

        public int size()
        Description copied from class: SparseRow
        Get the number of non-zero values of the sparse row.
        Specified by:
        size in class SparseRow
        Returns:
        number of non-zeros
      • setSize

        public void setSize(int newsize)
      • isEmpty

        public boolean isEmpty()
        Description copied from class: SparseRow
        Indicates if the sparse row is empty, i.e., if is has size zero.
        Specified by:
        isEmpty in class SparseRow
        Returns:
        true if empty
      • values

        public double[] values()
        Description copied from class: SparseRow
        Get the value array of non-zero entries, co-aligned with the array of indexes.
        Specified by:
        values in class SparseRow
        Returns:
        array of values
      • indexes

        public int[] indexes()
        Description copied from class: SparseRow
        Get the index array of non-zero entries, co-aligned with the array of values.
        Specified by:
        indexes in class SparseRow
        Returns:
        array of indexes
      • setValues

        public void setValues(double[] d)
      • setIndexes

        public void setIndexes(int[] i)
      • capacity

        public int capacity()
      • reset

        public void reset(int estnns,
                          int maxnns)
        Description copied from class: SparseRow
        Resets the sparse row to empty, after this call size and isEmpty are guaranteed to return 0 and true, respectively.
        Specified by:
        reset in class SparseRow
        Parameters:
        estnns - estimated number of non-zeros
        maxnns - maximum number of non-zeros, e.g., number of columns
      • set

        public boolean set(int col,
                           double v)
        Description copied from class: SparseRow
        Sets the value of a specified column with awareness of potential overwrites or deletes (set to value zero).
        Specified by:
        set in class SparseRow
        Parameters:
        col - column index, zero-based
        v - value
        Returns:
        true if the size of the sparse row changed
      • append

        public void append(int col,
                           double v)
        Description copied from class: SparseRow
        Appends a value to the end of the sparse row.
        Specified by:
        append in class SparseRow
        Parameters:
        col - column index, zero-based
        v - value
      • get

        public double get(int col)
        Description copied from class: SparseRow
        Gets the value of a specified column. If the column index does not exist in the sparse row, this call returns zero.
        Specified by:
        get in class SparseRow
        Parameters:
        col - column index, zero-based
        Returns:
        value
      • searchIndexesFirstLTE

        public int searchIndexesFirstLTE(int col)
      • searchIndexesFirstGTE

        public int searchIndexesFirstGTE(int col)
      • searchIndexesFirstGT

        public int searchIndexesFirstGT(int col)
      • deleteIndexRange

        public void deleteIndexRange(int lowerCol,
                                     int upperCol)
      • setIndexRange

        public void setIndexRange(int lowerCol,
                                  int upperCol,
                                  double[] v,
                                  int vix,
                                  int len)
        Inserts a dense vector into a column range; calling this methods helps to avoid repeated shifting of remaining values/indexes for every set value.
        Parameters:
        lowerCol - lower column index
        upperCol - upper column index
        v - dense vector
        vix - ?
        len - ?
      • sort

        public void sort()
        Description copied from class: SparseRow
        In-place sort of column-index value pairs in order to allow binary search after constant-time append was used for reading unordered sparse rows. We first check if already sorted and subsequently sort if necessary in order to get O(n) best case. Note: In-place sort is necessary in order to guarantee the memory estimate for operations that implicitly read that data set.
        Specified by:
        sort in class SparseRow
      • compact

        public void compact()
        Description copied from class: SparseRow
        In-place compaction of non-zero-entries; removes zero entries and shifts non-zero entries to the left if necessary.
        Specified by:
        compact in class SparseRow

Copyright © 2017 The Apache Software Foundation. All rights reserved.