Package org.apache.sysds.runtime.data

## Class DenseBlockFP64DEDUP

- java.lang.Object
- - org.apache.sysds.runtime.data.DenseBlock
  - - org.apache.sysds.runtime.data.DenseBlockDRB
    - - org.apache.sysds.runtime.data.DenseBlockFP64DEDUP

All Implemented Interfaces:
  `Serializable`, `Block`

    public class DenseBlockFP64DEDUP
    extends DenseBlockDRB

See Also:
  Serialized Form

### Nested Class Summary

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

`DenseBlock.Type`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`int` `blockSize()` Get the number of rows per block, except last one.
`int` `blockSize​(int bix)` Get the number of rows of the given block.
`long` `capacity()` Get the total length of allocated blocks.
`long` `countNonZeros()` Compute the number of non-zero values, which potentially makes a full pass over the underlying blocks.
`int` `countNonZeros​(int r)` 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` `createDeepCopyOfEmbedding​(int pos)`
`long` `estimateMemory()`
`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[]` `getDedupDirectly​(int pos)`
`int` `getEmbSize()`
`long` `getLong​(int[] ix)` Get the value of a given cell as long
`int` `getNrDistinctRows()`
`int` `getNrEmbsPerRow()`
`String` `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` `isContiguous()` 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` `isNumeric()` Indicates if the dense block is numeric.
`boolean` `isNumeric​(Types.ValueType vt)` Indicates if the dense block is a specific numeric value type.
`int` `numBlocks()` 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)`
`DenseBlock` `set​(int[] ix, double v)` Set the specified cell to the given value.
`DenseBlock` `set​(int[] ix, long v)` Set the specified cell to the given value.
`DenseBlock` `set​(int[] ix, String v)` Set the specified cell to the given value.
`DenseBlock` `set​(int r, double[] v)` Copy the given vector into the given row.
`DenseBlock` `set​(int r, int c, double v)` Set the given value for a given row and column.
`DenseBlock` `set​(int rl, int ru, int ol, int ou, DenseBlock db)` Copy the given dense block into the specified index range.
`DenseBlock` `set​(DenseBlock db)` Copy the given dense block.
`DenseBlock` `setDedupDirectly​(int r, double[] v)`
`void` `setDistinct​(int d)`
`void` `setEmbeddingSize​(int s)`
`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 org.apache.sysds.runtime.data.DenseBlock

`contains, contains, contains, equals, equals, estimateMemory, fill, getCumODims, getDim, getNextIndexes, numCols, numDims, numRows, reset, reset, reset, reset, reset, reset, resetNoFill, set, set, set, setDims, size, toString`

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

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

### Method Detail

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