org.apache.sysds.runtime.data

## Class SparseRowVector

- java.lang.Object
- - org.apache.sysds.runtime.data.SparseRow
  - - org.apache.sysds.runtime.data.SparseRowVector

- All Implemented Interfaces:
    Serializable

      public final class SparseRowVector
      extends SparseRow
      implements Serializable

  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `initialCapacity`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SparseRowVector()`
    `SparseRowVector(int capacity)`
    `SparseRowVector(int nnz, double[] v, int vlen)`
    `SparseRowVector(int estnnz, int maxnnz)`
    `SparseRowVector(SparseRow that)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `add(int col, double v)` Add a value to a specified column with awareness of potential insertions.
    `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` | `getIndex(int col)`
    `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 cl, int cu, double[] v, int[] vix, int vpos, int vlen)`
    `void` | `setIndexRange(int cl, int cu, double[] v, int vix, int vlen)`
    `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.

    - ### Methods inherited from class org.apache.sysds.runtime.data.SparseRow

      `toString`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### initialCapacity

          public static final int initialCapacity

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### SparseRowVector

          public SparseRowVector()

    - #### SparseRowVector

          public SparseRowVector(int capacity)

    - #### SparseRowVector

          public SparseRowVector(int nnz,
                                 double[] v,
                                 int vlen)

    - #### 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()

    - #### copy

          public void copy(SparseRow that)

    - #### 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

    - #### add

          public boolean add(int col,
                             double v)

      Description copied from class: `SparseRow`
      Add a value to a specified column with awareness of potential insertions.
      Specified by:
        `add` 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

    - #### getIndex

          public int getIndex(int col)

    - #### 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 cl,
                                    int cu,
                                    double[] v,
                                    int vix,
                                    int vlen)

    - #### setIndexRange

          public void setIndexRange(int cl,
                                    int cu,
                                    double[] v,
                                    int[] vix,
                                    int vpos,
                                    int vlen)

    - #### 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 © 2021 The Apache Software Foundation. All rights reserved.