Class DenseBlockFP64DEDUP

All Implemented Interfaces:
Serializable, Block

public class DenseBlockFP64DEDUP extends DenseBlockDRB
See Also:
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.apache.sysds.runtime.data.DenseBlock

    DenseBlock.Type
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Get the number of rows per block, except last one.
    int
    blockSize(int bix)
    Get the number of rows of the given block.
    long
    Get the total length of allocated blocks.
    long
    Compute the number of non-zero values, which potentially makes a full pass over the underlying blocks.
    int
    Compute the number of non-zero values for the given row, which potentially makes a full pass over the underlying row.
    long
    countNonZeros(int rl, int ru, int ol, int ou)
    Compute the number of non-zero values, which potentially makes a full pass over the underlying blocks in the row range.
    void
     
    long
     
    static long
    estimateMemory(int rows, int cols, int duplicates)
     
    static long
    estimateMemory(long rows, long cols, long duplicates)
     
    void
    fillBlock(int bix, int fromIndex, int toIndex, double v)
    Fill a certain range of elements of a block.
    void
    fillRow(int r, double v)
    Fill the DenseBlock row index with the value specified.
    double
    get(int[] ix)
    Get the value of a given cell
    double
    get(int r, int c)
    Get the value for a given row and column.
    double[]
     
    int
     
    long
    getLong(int[] ix)
    Get the value of a given cell as long
    int
     
    int
     
    getString(int[] ix)
    Get the value of a given cell as a String
    void
    incr(int r, int c)
    Increments the given value for a given row and column.
    void
    incr(int r, int c, double delta)
    Increments the given value for a given row and column by delta.
    int
    index(int r)
    Get the block index for a given row.
    boolean
    Indicates if the dense block has a single underlying block, i.e., if numBlocks==1.
    boolean
    isContiguous(int rl, int ru)
    Indicates if the dense block has a single underlying block for the given row range.
    boolean
    Indicates if the dense block is numeric.
    boolean
    Indicates if the dense block is a specific numeric value type.
    int
    Get the number of allocated blocks.
    int
    pos(int r)
    Get the position for a given row within its associated block.
    int
    pos(int[] ix)
    Get the position for a given cell within the associated block.
    int
    pos(int r, int c)
    Get the position for a given row and column within the associated block.
    void
    reset(int rlen, int[] odims, double v)
    Resets the dense block by setting the given value.
    void
    resetNoFill(int rlen, int[] odims)
     
    void
    resetNoFillDedup(int rlen, int embsPerRow)
     
    set(int[] ix, double v)
    Set the specified cell to the given value.
    set(int[] ix, long v)
    Set the specified cell to the given value.
    set(int[] ix, String v)
    Set the specified cell to the given value.
    set(int r, double[] v)
    Copy the given vector into the given row.
    set(int r, int c, double v)
    Set the given value for a given row and column.
    set(int rl, int ru, int ol, int ou, DenseBlock db)
    Copy the given dense block into the specified index range.
    Copy the given dense block.
    setDedupDirectly(int r, double[] v)
     
    void
    setDistinct(int d)
     
    void
     
    int
    size(int bix)
    Get the length of the given block.
    double[]
    values(int r)
    Get the allocated block for the given row.
    double[]
    valuesAt(int bix)
    Get an allocated block.

    Methods inherited from class org.apache.sysds.runtime.data.DenseBlockDRB

    set, set

    Methods inherited from class java.lang.Object

    getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Method Details

    • setDistinct

      public void setDistinct(int d)
    • setEmbeddingSize

      public void setEmbeddingSize(int s)
    • getNrDistinctRows

      public int getNrDistinctRows()
    • getNrEmbsPerRow

      public int getNrEmbsPerRow()
    • getEmbSize

      public int getEmbSize()
    • reset

      public void reset(int rlen, int[] odims, double v)
      Description copied from class: DenseBlock
      Resets the dense block by setting the given value.
      Overrides:
      reset in class DenseBlockDRB
      Parameters:
      rlen - number of rows
      odims - other dimensions
      v - value
    • resetNoFill

      public void resetNoFill(int rlen, int[] odims)
      Specified by:
      resetNoFill in class DenseBlock
    • resetNoFillDedup

      public void resetNoFillDedup(int rlen, int embsPerRow)
    • isNumeric

      public boolean isNumeric()
      Description copied from class: DenseBlock
      Indicates if the dense block is numeric.
      Specified by:
      isNumeric in class DenseBlock
      Returns:
      true if numeric (FP, INT, BOOLEAN)
    • isNumeric

      public boolean isNumeric(Types.ValueType vt)
      Description copied from class: DenseBlock
      Indicates if the dense block is a specific numeric value type.
      Specified by:
      isNumeric in class DenseBlock
      Parameters:
      vt - value type to check
      Returns:
      true if numeric and of value type vt
    • capacity

      public long capacity()
      Description copied from class: DenseBlock
      Get the total length of allocated blocks.
      Specified by:
      capacity in class DenseBlock
      Returns:
      capacity
    • countNonZeros

      public long countNonZeros()
      Description copied from class: DenseBlock
      Compute the number of non-zero values, which potentially makes a full pass over the underlying blocks.
      Overrides:
      countNonZeros in class DenseBlockDRB
      Returns:
      number of non-zeros
    • countNonZeros

      public int countNonZeros(int r)
      Description copied from class: DenseBlock
      Compute the number of non-zero values for the given row, which potentially makes a full pass over the underlying row.
      Overrides:
      countNonZeros in class DenseBlockDRB
      Parameters:
      r - row index
      Returns:
      number of non-zeros
    • countNonZeros

      public long countNonZeros(int rl, int ru, int ol, int ou)
      Description copied from class: DenseBlock
      Compute the number of non-zero values, which potentially makes a full pass over the underlying blocks in the row range.
      Overrides:
      countNonZeros in class DenseBlockDRB
      Parameters:
      rl - row lower index
      ru - row upper index (exclusive)
      ol - column lower index
      ou - column upper index (exclusive)
      Returns:
      number of non-zeros
    • numBlocks

      public int numBlocks()
      Description copied from class: DenseBlock
      Get the number of allocated blocks.
      Overrides:
      numBlocks in class DenseBlockDRB
      Returns:
      number of blocks
    • blockSize

      public int blockSize()
      Description copied from class: DenseBlock
      Get the number of rows per block, except last one.
      Overrides:
      blockSize in class DenseBlockDRB
      Returns:
      number of rows in block
    • blockSize

      public int blockSize(int bix)
      Description copied from class: DenseBlock
      Get the number of rows of the given block.
      Overrides:
      blockSize in class DenseBlockDRB
      Parameters:
      bix - block index
      Returns:
      number of rows in block
    • isContiguous

      public boolean isContiguous()
      Description copied from class: DenseBlock
      Indicates if the dense block has a single underlying block, i.e., if numBlocks==1.
      Overrides:
      isContiguous in class DenseBlockDRB
      Returns:
      true if single block
    • isContiguous

      public boolean isContiguous(int rl, int ru)
      Description copied from class: DenseBlock
      Indicates if the dense block has a single underlying block for the given row range.
      Overrides:
      isContiguous in class DenseBlockDRB
      Parameters:
      rl - row lower index
      ru - row upper index (inclusive)
      Returns:
      true if single block in row range
    • pos

      public int pos(int r)
      Description copied from class: DenseBlock
      Get the position for a given row within its associated block.
      Overrides:
      pos in class DenseBlockDRB
      Parameters:
      r - row index
      Returns:
      block position
    • pos

      public int pos(int r, int c)
      Description copied from class: DenseBlock
      Get the position for a given row and column within the associated block.
      Overrides:
      pos in class DenseBlockDRB
      Parameters:
      r - row index
      c - column index
      Returns:
      block position
    • pos

      public int pos(int[] ix)
      Description copied from class: DenseBlock
      Get the position for a given cell within the associated block.
      Overrides:
      pos in class DenseBlockDRB
      Parameters:
      ix - cell indexes
      Returns:
      block position
    • values

      public double[] values(int r)
      Description copied from class: DenseBlock
      Get the allocated block for the given row. This call is equivalent to valuesAt(indexes(r)).
      Specified by:
      values in class DenseBlock
      Parameters:
      r - row index
      Returns:
      block
    • valuesAt

      public double[] valuesAt(int bix)
      Description copied from class: DenseBlock
      Get an allocated block.
      Specified by:
      valuesAt in class DenseBlock
      Parameters:
      bix - block index
      Returns:
      block
    • index

      public int index(int r)
      Description copied from class: DenseBlock
      Get the block index for a given row.
      Specified by:
      index in class DenseBlock
      Parameters:
      r - row index
      Returns:
      block index
    • size

      public int size(int bix)
      Description copied from class: DenseBlock
      Get the length of the given block.
      Overrides:
      size in class DenseBlockDRB
      Parameters:
      bix - block index
      Returns:
      length
    • incr

      public void incr(int r, int c)
      Description copied from class: DenseBlock
      Increments the given value for a given row and column.
      Specified by:
      incr in class DenseBlock
      Parameters:
      r - row index
      c - column index
    • createDeepCopyOfEmbedding

      public void createDeepCopyOfEmbedding(int pos)
    • incr

      public void incr(int r, int c, double delta)
      Description copied from class: DenseBlock
      Increments the given value for a given row and column by delta.
      Specified by:
      incr in class DenseBlock
      Parameters:
      r - row index
      c - column index
      delta - increment value
    • fillBlock

      public void fillBlock(int bix, int fromIndex, int toIndex, double v)
      Description copied from class: DenseBlock
      Fill a certain range of elements of a block.
      Specified by:
      fillBlock in class DenseBlock
      Parameters:
      bix - index of block
      fromIndex - starting index in block
      toIndex - ending index in block (exclusive)
      v - value
    • fillRow

      public void fillRow(int r, double v)
      Description copied from class: DenseBlock
      Fill the DenseBlock row index with the value specified.
      Specified by:
      fillRow in class DenseBlock
      Parameters:
      r - The row to fill
      v - The value to fill it with.
    • set

      public DenseBlock set(int r, int c, double v)
      Description copied from class: DenseBlock
      Set the given value for a given row and column.
      Specified by:
      set in class DenseBlock
      Parameters:
      r - row index
      c - column index
      v - value
      Returns:
      self
    • set

      public DenseBlock set(int r, double[] v)
      Description copied from class: DenseBlock
      Copy the given vector into the given row.
      Specified by:
      set in class DenseBlock
      Parameters:
      r - row index
      v - value vector
      Returns:
      self
    • setDedupDirectly

      public DenseBlock setDedupDirectly(int r, double[] v)
    • set

      public DenseBlock set(DenseBlock db)
      Description copied from class: DenseBlock
      Copy the given dense block.
      Specified by:
      set in class DenseBlock
      Parameters:
      db - dense block
      Returns:
      self
    • set

      public DenseBlock set(int rl, int ru, int ol, int ou, DenseBlock db)
      Description copied from class: DenseBlock
      Copy the given dense block into the specified index range.
      Overrides:
      set in class DenseBlock
      Parameters:
      rl - row lower index
      ru - row upper index (exclusive)
      ol - column lower index
      ou - column upper index (exclusive)
      db - dense block
      Returns:
      self
    • set

      public DenseBlock set(int[] ix, double v)
      Description copied from class: DenseBlock
      Set the specified cell to the given value.
      Specified by:
      set in class DenseBlock
      Parameters:
      ix - cell indexes
      v - value
      Returns:
      self
    • set

      public DenseBlock set(int[] ix, long v)
      Description copied from class: DenseBlock
      Set the specified cell to the given value.
      Specified by:
      set in class DenseBlock
      Parameters:
      ix - cell indexes
      v - value
      Returns:
      self
    • set

      public DenseBlock set(int[] ix, String v)
      Description copied from class: DenseBlock
      Set the specified cell to the given value.
      Specified by:
      set in class DenseBlock
      Parameters:
      ix - cell indexes
      v - value as String
      Returns:
      self
    • getDedupDirectly

      public double[] getDedupDirectly(int pos)
    • get

      public double get(int r, int c)
      Description copied from class: DenseBlock
      Get the value for a given row and column.
      Specified by:
      get in interface Block
      Specified by:
      get in class DenseBlock
      Parameters:
      r - row index
      c - column index
      Returns:
      value
    • get

      public double get(int[] ix)
      Description copied from class: DenseBlock
      Get the value of a given cell
      Specified by:
      get in class DenseBlock
      Parameters:
      ix - cell indexes
      Returns:
      value
    • getString

      public String getString(int[] ix)
      Description copied from class: DenseBlock
      Get the value of a given cell as a String
      Specified by:
      getString in class DenseBlock
      Parameters:
      ix - cell indexes
      Returns:
      value as String
    • getLong

      public long getLong(int[] ix)
      Description copied from class: DenseBlock
      Get the value of a given cell as long
      Specified by:
      getLong in class DenseBlock
      Parameters:
      ix - cell indexes
      Returns:
      value as long
    • estimateMemory

      public long estimateMemory()
    • estimateMemory

      public static long estimateMemory(int rows, int cols, int duplicates)
    • estimateMemory

      public static long estimateMemory(long rows, long cols, long duplicates)