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

## Class AColGroupCompressed

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

- All Implemented Interfaces:
    `Serializable`
  Direct Known Subclasses:
    `AColGroupValue`, `ColGroupConst`, `ColGroupEmpty`

      public abstract class AColGroupCompressed
      extends AColGroup

  Base class for column groups encoded Encoded in a compressed manner.
  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
    Modifier and Type | Method | Description
    --- | --- | ---
    `double` | `getMax()` | Short hand method for getting maximum value contained in this column group.
    `double` | `getMin()` | Short hand method for getting minimum value contained in this column group.
    `double[]` | `preAggRows​(AggregateUnaryOperator op)` |
    `void` | `tsmm​(MatrixBlock ret, int nRows)` | Do a transposed self matrix multiplication on the left side t(x) %*% x.
    `void` | `unaryAggregateOperations​(AggregateUnaryOperator op, double[] c, int nRows, int rl, int ru)` | Unary Aggregate operator, since aggregate operators require new object output, the output becomes an uncompressed matrix.
    `void` | `unaryAggregateOperations​(AggregateUnaryOperator op, double[] c, int nRows, int rl, int ru, double[] preAgg)` |

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

      `binaryRowOpLeft, binaryRowOpRight, centralMoment, colSum, computeColSums, containsValue, copy, decompressToDenseBlock, decompressToDenseBlock, decompressToSparseBlock, decompressToSparseBlock, estimateInMemorySize, get, getColIndices, getCompType, getCost, getExactSizeOnDisk, getIdx, getNumberNonZeros, getNumCols, getNumValues, leftMultByAColGroup, leftMultByMatrixNoPreAgg, readFields, replace, rexpandCols, rightMultByMatrix, scalarOperation, shiftColIndices, sliceColumn, sliceColumns, toString, tsmmAColGroup, unaryOperation, write`

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

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

- - ### Method Detail

    - #### preAggRows

          public double[] preAggRows​(AggregateUnaryOperator op)

    - #### getMin

          public double getMin()

      Description copied from class: `AColGroup`
      Short hand method for getting minimum value contained in this column group.
      Specified by:
        `getMin` in class `AColGroup`
      Returns:
        The minimum value contained in this ColumnGroup

    - #### getMax

          public double getMax()

      Description copied from class: `AColGroup`
      Short hand method for getting maximum value contained in this column group.
      Specified by:
        `getMax` in class `AColGroup`
      Returns:
        The maximum value contained in this ColumnGroup

    - #### unaryAggregateOperations

          public final void unaryAggregateOperations​(AggregateUnaryOperator op,
                                                     double[] c,
                                                     int nRows,
                                                     int rl,
                                                     int ru)

      Description copied from class: `AColGroup`
      Unary Aggregate operator, since aggregate operators require new object output, the output becomes an uncompressed matrix.
      Specified by:
        `unaryAggregateOperations` in class `AColGroup`
      Parameters:
        `op` - The operator used
        `c` - The output matrix block
        `nRows` - The total number of rows in the Column Group
        `rl` - The Starting Row to do aggregation from
        `ru` - The last Row to do aggregation to (not included)

    - #### unaryAggregateOperations

          public final void unaryAggregateOperations​(AggregateUnaryOperator op,
                                                     double[] c,
                                                     int nRows,
                                                     int rl,
                                                     int ru,
                                                     double[] preAgg)

    - #### tsmm

          public final void tsmm​(MatrixBlock ret,
                                 int nRows)

      Description copied from class: `AColGroup`
      Do a transposed self matrix multiplication on the left side t(x) %*% x. but only with this column group. This gives better performance since there is no need to iterate through all the rows of the matrix, but the execution can be limited to its number of distinct values. Note it only calculate the upper triangle
      Specified by:
        `tsmm` in class `AColGroup`
      Parameters:
        `ret` - The return matrix block [numColumns x numColumns]
        `nRows` - The number of rows in the column group