• Constructor Summary

      Constructors 
      Constructor Description
      SparseRow()  
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      abstract boolean add​(int col, double v)

      Add a value to a specified column with awareness of potential insertions.

      abstract SparseRow append​(int col, double v)

      Appends a value to the end of the sparse row.

      abstract void compact()

      In-place compaction of non-zero-entries; removes zero entries and shifts non-zero entries to the left if necessary.

      abstract void compact​(double eps)

      In-place compaction of values over eps away from zero; and shifts non-zero entries to the left if necessary.

      abstract SparseRow copy​(boolean deep)

      Make a copy of this row.

      abstract double get​(int col)

      Gets the value of a specified column.

      abstract int[] indexes()

      Get the index array of non-zero entries, co-aligned with the array of values.

      abstract boolean isEmpty()

      Indicates if the sparse row is empty, i.e., if is has size zero.

      abstract 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.

      abstract int searchIndexesFirstGT​(int col)  
      abstract int searchIndexesFirstGTE​(int col)

      Get first index greater than equal column index.

      abstract boolean set​(int col, double v)

      Sets the value of a specified column with awareness of potential overwrites or deletes (set to value zero).

      abstract int size()

      Get the number of non-zero values of the sparse row.

      abstract 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.

      String toString()  
      abstract double[] values()

      Get the value array of non-zero entries, co-aligned with the array of indexes.

    • Constructor Detail

      • SparseRow

        public SparseRow()
    • Method Detail

      • size

        public abstract int size()

        Get the number of non-zero values of the sparse row.

        Returns:
        number of non-zeros
      • isEmpty

        public abstract boolean isEmpty()

        Indicates if the sparse row is empty, i.e., if is has size zero.

        Returns:
        true if empty
      • values

        public abstract double[] values()

        Get the value array of non-zero entries, co-aligned with the array of indexes.

        Returns:
        array of values
      • indexes

        public abstract int[] indexes()

        Get the index array of non-zero entries, co-aligned with the array of values.

        Returns:
        array of indexes
      • reset

        public abstract 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.

        Parameters:
        estnns - estimated number of non-zeros
        maxnns - maximum number of non-zeros, e.g., number of columns
      • set

        public abstract boolean set​(int col,
                                    double v)

        Sets the value of a specified column with awareness of potential overwrites or deletes (set to value zero).

        Parameters:
        col - column index, zero-based
        v - value
        Returns:
        true if the size of the sparse row changed
      • add

        public abstract boolean add​(int col,
                                    double v)

        Add a value to a specified column with awareness of potential insertions.

        Parameters:
        col - column index, zero-based
        v - value
        Returns:
        true if the size of the sparse row changed
      • append

        public abstract SparseRow append​(int col,
                                         double v)

        Appends a value to the end of the sparse row.

        Parameters:
        col - column index, zero-based
        v - value
        Returns:
        the row with an appended element
      • get

        public abstract double get​(int col)

        Gets the value of a specified column. If the column index does not exist in the sparse row, this call returns zero.

        Parameters:
        col - column index, zero-based
        Returns:
        value
      • sort

        public abstract 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. 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.

      • compact

        public abstract void compact()

        In-place compaction of non-zero-entries; removes zero entries and shifts non-zero entries to the left if necessary.

      • compact

        public abstract void compact​(double eps)

        In-place compaction of values over eps away from zero; and shifts non-zero entries to the left if necessary.

        Parameters:
        eps - epsilon value
      • copy

        public abstract SparseRow copy​(boolean deep)

        Make a copy of this row.

        Parameters:
        deep - if the copy should be deep
        Returns:
        A copy
      • searchIndexesFirstGTE

        public abstract int searchIndexesFirstGTE​(int col)

        Get first index greater than equal column index.

        Parameters:
        col - column to be greater than
        Returns:
        index
      • searchIndexesFirstGT

        public abstract int searchIndexesFirstGT​(int col)