Package org.apache.sysds.runtime.compress.colgroup

## Class ADictBasedColGroup

- java.lang.Object
- - org.apache.sysds.runtime.compress.colgroup.AColGroup
  - - org.apache.sysds.runtime.compress.colgroup.AColGroupCompressed
    - - org.apache.sysds.runtime.compress.colgroup.ADictBasedColGroup

All Implemented Interfaces:
  `Serializable`

Direct Known Subclasses:
  `AColGroupValue`, `ColGroupConst`

    public abstract class ADictBasedColGroup
    extends AColGroupCompressed

See Also:
  Serialized Form

### Nested Class Summary

### Nested classes/interfaces inherited from class org.apache.sysds.runtime.compress.colgroup.AColGroup

`AColGroup.CompressionType`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `decompressToDenseBlock​(DenseBlock db, int rl, int ru, int offR, int offC)` Decompress into the DenseBlock.
`void` `decompressToSparseBlock​(SparseBlock sb, int rl, int ru, int offR, int offC)` Decompress into the SparseBlock.
`long` `estimateInMemorySize()` Get the upper bound estimate of in memory allocation for the column group.
`ADictionary` `getDictionary()`
`long` `getExactSizeOnDisk()` Returns the exact serialized size of column group.
`AColGroup` `rightMultByMatrix​(MatrixBlock right, IColIndex allCols)` Right matrix multiplication with this column group.
`void` `write​(DataOutput out)`

### Methods inherited from class org.apache.sysds.runtime.compress.colgroup.AColGroupCompressed

`getMax, getMin, getSum, isEmpty, preAggRows, tsmm, unaryAggregateOperations, unaryAggregateOperations`

### Methods inherited from class org.apache.sysds.runtime.compress.colgroup.AColGroup

`append, appendN, binaryRowOpLeft, binaryRowOpRight, centralMoment, colSum, computeColSums, containsValue, decompressToDenseBlock, decompressToSparseBlock, get, getColIndices, getCompressionScheme, getCompType, getCost, getIdx, getNumberNonZeros, getNumCols, getNumValues, leftMultByAColGroup, leftMultByMatrixNoPreAgg, replace, rexpandCols, rightMultByMatrix, scalarOperation, shiftColIndices, sliceColumn, sliceColumns, sliceRows, toString, tsmmAColGroup, unaryOperation`

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

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

### Method Detail

#### getDictionary

    public ADictionary getDictionary()

#### decompressToDenseBlock

    public final void decompressToDenseBlock​(DenseBlock db,
                                             int rl,
                                             int ru,
                                             int offR,
                                             int offC)

Description copied from class: `AColGroup`
Decompress into the DenseBlock. (no NNZ handling)

Specified by:
  `decompressToDenseBlock` in class `AColGroup`
Parameters:
  `db` - Target DenseBlock
  `rl` - Row to start decompression from
  `ru` - Row to end decompression at
  `offR` - Row offset into the target to decompress
  `offC` - Column offset into the target to decompress

#### decompressToSparseBlock

    public final void decompressToSparseBlock​(SparseBlock sb,
                                              int rl,
                                              int ru,
                                              int offR,
                                              int offC)

Description copied from class: `AColGroup`
Decompress into the SparseBlock. (no NNZ handling) Note this method is allowing to calls to append since it is assumed that the sparse column indexes are sorted afterwards

Specified by:
  `decompressToSparseBlock` in class `AColGroup`
Parameters:
  `sb` - Target SparseBlock
  `rl` - Row to start decompression from
  `ru` - Row to end decompression at
  `offR` - Row offset into the target to decompress
  `offC` - Column offset into the target to decompress

#### write

    public void write​(DataOutput out)
               throws IOException

Throws:
  `IOException`

#### getExactSizeOnDisk

    public long getExactSizeOnDisk()

Description copied from class: `AColGroup`
Returns the exact serialized size of column group. This can be used for example for buffer preallocation.

Overrides:
  `getExactSizeOnDisk` in class `AColGroup`
Returns:
  exact serialized size for column group

#### estimateInMemorySize

    public long estimateInMemorySize()

Description copied from class: `AColGroup`
Get the upper bound estimate of in memory allocation for the column group.

Overrides:
  `estimateInMemorySize` in class `AColGroup`
Returns:
  an upper bound on the number of bytes used to store this ColGroup in memory.

#### rightMultByMatrix

    public final AColGroup rightMultByMatrix​(MatrixBlock right,
                                             IColIndex allCols)

Description copied from class: `AColGroup`
Right matrix multiplication with this column group. This method can return null, meaning that the output overlapping group would have been empty.

Specified by:
  `rightMultByMatrix` in class `AColGroup`
Parameters:
  `right` - The MatrixBlock on the right of this matrix multiplication
  `allCols` - A pre-materialized list of all col indexes, that can be shared across all column groups if use full, can be set to null.
Returns:
  The new Column Group or null that is the result of the matrix multiplication.