Class ColGroupDDC
- java.lang.Object
- 
- org.apache.sysds.runtime.compress.colgroup.AColGroup
- 
- org.apache.sysds.runtime.compress.colgroup.AColGroupCompressed
- 
- org.apache.sysds.runtime.compress.colgroup.AColGroupValue
- 
- org.apache.sysds.runtime.compress.colgroup.APreAgg
- 
- org.apache.sysds.runtime.compress.colgroup.ColGroupDDC
 
 
 
 
 
- 
- All Implemented Interfaces:
- Serializable,- Cloneable
 - Direct Known Subclasses:
- ColGroupDeltaDDC
 
 public class ColGroupDDC extends APreAgg Class to encapsulate information about a column group that is encoded with dense dictionary encoding (DDC).- See Also:
- Serialized Form
 
- 
- 
Nested Class Summary- 
Nested classes/interfaces inherited from class org.apache.sysds.runtime.compress.colgroup.AColGroupAColGroup.CompressionType
 
- 
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description AColGroupbinaryRowOpLeft(BinaryOperator op, double[] v, boolean isRowSafe)Perform a binary row operation.AColGroupbinaryRowOpRight(BinaryOperator op, double[] v, boolean isRowSafe)Perform a binary row operation.longestimateInMemorySize()Get the upper bound estimate of in memory allocation for the column group.org.apache.sysds.runtime.compress.colgroup.AColGroup.ColGroupTypegetColGroupType()AColGroup.CompressionTypegetCompType()Obtain the compression type.doublegetCost(ComputationCostEstimator e, int nRows)Get the computation cost associated with this column group.int[]getCounts(int[] counts)longgetExactSizeOnDisk()Returns the exact serialized size of column group.doublegetIdx(int r, int colIdx)Get the value at a colGroup specific row/column index position.voidleftMultByMatrixNoPreAgg(MatrixBlock matrix, MatrixBlock result, int rl, int ru, int cl, int cu)Left multiply with this column group.voidpreAggregateDense(MatrixBlock m, double[] preAgg, int rl, int ru, int cl, int cu)Pre aggregate a dense matrix block into a pre aggregate target (first step of left matrix multiplication)voidpreAggregateSparse(SparseBlock sb, double[] preAgg, int rl, int ru)voidpreAggregateThatDDCStructure(ColGroupDDC that, Dictionary ret)voidpreAggregateThatSDCSingleZerosStructure(ColGroupSDCSingleZeros that, Dictionary ret)voidpreAggregateThatSDCZerosStructure(ColGroupSDCZeros that, Dictionary ret)voidreadFields(DataInput in)Deserialize column group from data input.booleansameIndexStructure(AColGroupCompressed that)AColGroupscalarOperation(ScalarOperator op)Perform the specified scalar operation directly on the compressed column group, without decompressing individual cells if possible.StringtoString()AColGroupunaryOperation(UnaryOperator op)voidwrite(DataOutput out)Serializes column group to data output.- 
Methods inherited from class org.apache.sysds.runtime.compress.colgroup.APreAgggetPreAggregateSize, leftMultByAColGroup, mmWithDictionary, preAggregate, preAggregateThatIndexStructure, tsmmAColGroup
 - 
Methods inherited from class org.apache.sysds.runtime.compress.colgroup.AColGroupValuecentralMoment, computeColSums, containsValue, copy, decompressToDenseBlock, decompressToSparseBlock, forceMatrixBlockDictionary, getCachedCounts, getCounts, getDictionary, getNumberNonZeros, getNumValues, replace, rexpandCols, rightMultByMatrix
 - 
Methods inherited from class org.apache.sysds.runtime.compress.colgroup.AColGroupCompressedgetMax, getMin, preAggRows, tsmm, unaryAggregateOperations, unaryAggregateOperations
 - 
Methods inherited from class org.apache.sysds.runtime.compress.colgroup.AColGroupcolSum, decompressToDenseBlock, decompressToSparseBlock, get, getColIndices, getNumCols, shiftColIndices, sliceColumn, sliceColumns
 
- 
 
- 
- 
- 
Method Detail- 
getCompTypepublic AColGroup.CompressionType getCompType() Description copied from class:AColGroupObtain the compression type.- Specified by:
- getCompTypein class- AColGroup
- Returns:
- How the elements of the column group are compressed.
 
 - 
getIdxpublic double getIdx(int r, int colIdx)Description copied from class:AColGroupGet the value at a colGroup specific row/column index position.
 - 
getCountspublic int[] getCounts(int[] counts) - Specified by:
- getCountsin class- AColGroupValue
 
 - 
leftMultByMatrixNoPreAggpublic void leftMultByMatrixNoPreAgg(MatrixBlock matrix, MatrixBlock result, int rl, int ru, int cl, int cu) Description copied from class:AColGroupLeft multiply with this column group.- Specified by:
- leftMultByMatrixNoPreAggin class- AColGroup
- Parameters:
- matrix- The matrix to multiply with on the left
- result- The result to output the values into, always dense for the purpose of the column groups parallelizing
- rl- The row to begin the multiplication from on the lhs matrix
- ru- The row to end the multiplication at on the lhs matrix
- cl- The column to begin the multiplication from on the lhs matrix
- cu- The column to end the multiplication at on the lhs matrix
 
 - 
preAggregateDensepublic void preAggregateDense(MatrixBlock m, double[] preAgg, int rl, int ru, int cl, int cu) Description copied from class:APreAggPre aggregate a dense matrix block into a pre aggregate target (first step of left matrix multiplication)- Specified by:
- preAggregateDensein class- APreAgg
- Parameters:
- m- The matrix to preAggregate
- preAgg- The preAggregate target
- rl- Row lower on the left side matrix
- ru- Row upper on the left side matrix
- cl- Column lower on the left side matrix (or row lower in the column group)
- cu- Column upper on the left side matrix (or row upper in the column group)
 
 - 
preAggregateSparsepublic void preAggregateSparse(SparseBlock sb, double[] preAgg, int rl, int ru) - Specified by:
- preAggregateSparsein class- APreAgg
 
 - 
preAggregateThatDDCStructurepublic void preAggregateThatDDCStructure(ColGroupDDC that, Dictionary ret) 
 - 
preAggregateThatSDCZerosStructurepublic void preAggregateThatSDCZerosStructure(ColGroupSDCZeros that, Dictionary ret) 
 - 
preAggregateThatSDCSingleZerosStructurepublic void preAggregateThatSDCSingleZerosStructure(ColGroupSDCSingleZeros that, Dictionary ret) 
 - 
sameIndexStructurepublic boolean sameIndexStructure(AColGroupCompressed that) 
 - 
getColGroupTypepublic org.apache.sysds.runtime.compress.colgroup.AColGroup.ColGroupType getColGroupType() 
 - 
estimateInMemorySizepublic long estimateInMemorySize() Description copied from class:AColGroupGet the upper bound estimate of in memory allocation for the column group.- Overrides:
- estimateInMemorySizein class- AColGroupValue
- Returns:
- an upper bound on the number of bytes used to store this ColGroup in memory.
 
 - 
scalarOperationpublic AColGroup scalarOperation(ScalarOperator op) Description copied from class:AColGroupPerform the specified scalar operation directly on the compressed column group, without decompressing individual cells if possible.- Specified by:
- scalarOperationin class- AColGroup
- Parameters:
- op- operation to perform
- Returns:
- version of this column group with the operation applied
 
 - 
unaryOperationpublic AColGroup unaryOperation(UnaryOperator op) - Specified by:
- unaryOperationin class- AColGroup
 
 - 
binaryRowOpLeftpublic AColGroup binaryRowOpLeft(BinaryOperator op, double[] v, boolean isRowSafe) Description copied from class:AColGroupPerform a binary row operation.- Specified by:
- binaryRowOpLeftin class- AColGroup
- Parameters:
- op- The operation to execute
- v- The vector of values to apply, should be same length as dictionary length.
- isRowSafe- True if the binary op is applied to an entire zero row and all results are zero
- Returns:
- A updated column group with the new values.
 
 - 
binaryRowOpRightpublic AColGroup binaryRowOpRight(BinaryOperator op, double[] v, boolean isRowSafe) Description copied from class:AColGroupPerform a binary row operation.- Specified by:
- binaryRowOpRightin class- AColGroup
- Parameters:
- op- The operation to execute
- v- The vector of values to apply, should be same length as dictionary length.
- isRowSafe- True if the binary op is applied to an entire zero row and all results are zero
- Returns:
- A updated column group with the new values.
 
 - 
writepublic void write(DataOutput out) throws IOException Description copied from class:AColGroupSerializes column group to data output.- Overrides:
- writein class- AColGroupValue
- Parameters:
- out- data output
- Throws:
- IOException- if IOException occurs
 
 - 
readFieldspublic void readFields(DataInput in) throws IOException Description copied from class:AColGroupDeserialize column group from data input.- Overrides:
- readFieldsin class- AColGroupValue
- Parameters:
- in- data input
- Throws:
- IOException- if IOException occurs
 
 - 
getExactSizeOnDiskpublic long getExactSizeOnDisk() Description copied from class:AColGroupReturns the exact serialized size of column group. This can be used for example for buffer preallocation.- Overrides:
- getExactSizeOnDiskin class- AColGroupValue
- Returns:
- exact serialized size for column group
 
 - 
getCostpublic double getCost(ComputationCostEstimator e, int nRows) Description copied from class:AColGroupGet the computation cost associated with this column group.
 - 
toStringpublic String toString() - Overrides:
- toStringin class- AColGroupValue
 
 
- 
 
-