Package org.apache.sysds.runtime.data

# Class DenseBlockDRB

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

All Implemented Interfaces:
  `Serializable`, `Block`

Direct Known Subclasses:
  `DenseBlockBool`, `DenseBlockFP32`, `DenseBlockFP64`, `DenseBlockFP64DEDUP`, `DenseBlockInt32`, `DenseBlockInt64`, `DenseBlockString`

public abstract class DenseBlockDRB extends DenseBlock

See Also:
  - Serialized Form

## 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`
`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`
`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.
`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.
`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.
`DenseBlock`
`set(double v)`
Set the given value for the entire dense block (fill).
`DenseBlock`
`set(int rl, int ru, int cl, int cu, double v)`
Set the given value for an entire index range of the dense block (fill).
`int`
`size(int bix)`
Get the length of the given block.

### Methods inherited from class org.apache.sysds.runtime.data.DenseBlock

`capacity, contains, contains, contains, equals, equals, estimateMemory, fill, fillBlock, fillRow, get, get, getCumODims, getDim, getLong, getNextIndexes, getString, incr, incr, index, isNumeric, isNumeric, numCols, numDims, numRows, reset, reset, reset, reset, reset, reset, resetNoFill, resetNoFill, set, set, set, set, set, set, set, set, set, set, setDims, size, toString, values, valuesAt`

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

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

## Method Details

### reset

public void reset(int rlen, int[] odims, double v)
Description copied from class: `DenseBlock`
Resets the dense block by setting the given value.

Specified by:
  `reset` in class `DenseBlock`
Parameters:
  `rlen` - number of rows
  `odims` - other dimensions
  `v` - value

### numBlocks

public int numBlocks()
Description copied from class: `DenseBlock`
Get the number of allocated blocks.

Specified by:
  `numBlocks` in class `DenseBlock`
Returns:
  number of blocks

### blockSize

public int blockSize()
Description copied from class: `DenseBlock`
Get the number of rows per block, except last one.

Specified by:
  `blockSize` in class `DenseBlock`
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.

Specified by:
  `blockSize` in class `DenseBlock`
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.

Specified by:
  `isContiguous` in class `DenseBlock`
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.

Specified by:
  `isContiguous` in class `DenseBlock`
Parameters:
  `rl` - row lower index
  `ru` - row upper index (inclusive)
Returns:
  true if single block in row range

### size

public int size(int bix)
Description copied from class: `DenseBlock`
Get the length of the given block.

Specified by:
  `size` in class `DenseBlock`
Parameters:
  `bix` - block index
Returns:
  length

### pos

public int pos(int r)
Description copied from class: `DenseBlock`
Get the position for a given row within its associated block.

Specified by:
  `pos` in class `DenseBlock`
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.

Specified by:
  `pos` in class `DenseBlock`
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.

Specified by:
  `pos` in class `DenseBlock`
Parameters:
  `ix` - cell indexes
Returns:
  block position

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

Specified by:
  `countNonZeros` in class `DenseBlock`
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.

Specified by:
  `countNonZeros` in class `DenseBlock`
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.

Specified by:
  `countNonZeros` in class `DenseBlock`
Parameters:
  `rl` - row lower index
  `ru` - row upper index (exclusive)
  `ol` - column lower index
  `ou` - column upper index (exclusive)
Returns:
  number of non-zeros

### set

public DenseBlock set(int rl, int ru, int cl, int cu, double v)
Description copied from class: `DenseBlock`
Set the given value for an entire index range of the dense block (fill).

Specified by:
  `set` in class `DenseBlock`
Parameters:
  `rl` - row lower index
  `ru` - row upper index (exclusive)
  `cl` - column lower index
  `cu` - column upper index (exclusive)
  `v` - value
Returns:
  self

### set

public DenseBlock set(double v)
Description copied from class: `DenseBlock`
Set the given value for the entire dense block (fill).

Specified by:
  `set` in class `DenseBlock`
Parameters:
  `v` - value
Returns:
  self