public class ColGroupUncompressed extends AColGroup
AColGroup.CompressionType| Constructor and Description |
|---|
ColGroupUncompressed(int[] colIndicesList,
MatrixBlock rawBlock,
boolean transposed)
Main constructor for Uncompressed ColGroup.
|
| Modifier and Type | Method and Description |
|---|---|
AColGroup |
binaryRowOp(BinaryOperator op,
double[] v,
boolean sparseSafe,
boolean left)
Perform a binary row operation.
|
boolean |
containsValue(double pattern)
Detect if the column group contains a specific value.
|
AColGroup |
copy()
Get a copy of this column group.
|
void |
countNonZerosPerRow(int[] rnnz,
int rl,
int ru)
Count the number of non-zeros per row
|
void |
decompressToBlockSafe(MatrixBlock target,
int rl,
int ru,
int offT)
Decompress the contents of this column group into the specified full matrix block while managing the number of
non zeros.
|
void |
decompressToBlockUnSafe(MatrixBlock target,
int rl,
int ru,
int offT)
Decompress the contents of the columngroup unsafely, meaning that it does not count nonzero values.
|
long |
estimateInMemorySize()
Get the upper bound estimate of in memory allocation for the column group.
|
double |
get(int r,
int c)
Get the value at a global row/column position.
|
org.apache.sysds.runtime.compress.colgroup.AColGroup.ColGroupType |
getColGroupType()
Internally get the specific type of ColGroup, this could be extracted from the object but that does not allow for
nice switches in the code.
|
AColGroup.CompressionType |
getCompType()
Obtain the compression type.
|
MatrixBlock |
getData()
Access for superclass
|
long |
getExactSizeOnDisk()
Returns the exact serialized size of column group.
|
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.
|
long |
getNumberNonZeros()
Get the number of nonZeros contained in this column group.
|
int |
getNumRows()
Get number of rows contained in the ColGroup.
|
int |
getNumValues()
Obtain number of distinct tuples in contained sets of values associated with this column group.
|
double[] |
getValues()
Get all the values in the colGroup.
|
MatrixBlock |
getValuesAsBlock()
Returns the ColGroup as a MatrixBlock.
|
boolean |
isDense()
Is dense, signals that the entire column group is allocated an processed.
|
boolean |
isLossy()
Is Lossy
|
void |
leftMultByAColGroup(AColGroup lhs,
MatrixBlock result)
Left side matrix multiplication with a column group that is transposed.
|
void |
leftMultByMatrix(MatrixBlock matrix,
MatrixBlock result,
int rl,
int ru)
Left multiply with this column group.
|
void |
readFields(DataInput in)
Deserialize column group from data input.
|
AColGroup |
replace(double pattern,
double replace)
Make a copy of the column group values, and replace all values that match pattern with replacement value.
|
AColGroup |
rightMultByMatrix(MatrixBlock right)
Right matrix multiplication with this column group.
|
AColGroup |
scalarOperation(ScalarOperator op)
Perform the specified scalar operation directly on the compressed column group, without decompressing individual
cells if possible.
|
String |
toString() |
void |
tsmm(MatrixBlock ret)
Do a transposed self matrix multiplication on the left side t(x) %*% x.
|
void |
unaryAggregateOperations(AggregateUnaryOperator op,
double[] ret)
Unary Aggregate operator, since aggregate operators require new object output, the output becomes an uncompressed
matrix.
|
void |
unaryAggregateOperations(AggregateUnaryOperator op,
double[] result,
int rl,
int ru)
Unary Aggregate operator, since aggregate operators require new object output, the output becomes an uncompressed
matrix.
|
void |
write(DataOutput out)
Serializes column group to data output.
|
decompressColumnToBlockUnSafe, decompressToBlockUnSafe, getColIndices, getNumCols, leftMultByMatrix, shiftColIndices, sliceColumn, sliceColumnspublic ColGroupUncompressed(int[] colIndicesList,
MatrixBlock rawBlock,
boolean transposed)
colIndicesList - Indices (relative to the current block) of the columns that this column group represents.rawBlock - The uncompressed block; uncompressed data must be present at the time that the constructor
is calledtransposed - Says if the input matrix raw block have been transposed.public AColGroup.CompressionType getCompType()
AColGroupgetCompType in class AColGrouppublic org.apache.sysds.runtime.compress.colgroup.AColGroup.ColGroupType getColGroupType()
AColGrouppublic MatrixBlock getData()
public long estimateInMemorySize()
AColGroupestimateInMemorySize in class AColGrouppublic void decompressToBlockSafe(MatrixBlock target, int rl, int ru, int offT)
AColGroupdecompressToBlockSafe in class AColGrouptarget - a matrix block where the columns covered by this column group have not yet been filled in.rl - row lowerru - row upperoffT - Offset into target to assign frompublic void decompressToBlockUnSafe(MatrixBlock target, int rl, int ru, int offT)
AColGroupdecompressToBlockUnSafe in class AColGrouptarget - a matrix block where the columns covered by this column group have not yet been filled in.rl - row lowerru - row upperoffT - Offset into target to assign frompublic double get(int r,
int c)
AColGrouppublic void leftMultByMatrix(MatrixBlock matrix, MatrixBlock result, int rl, int ru)
AColGroupleftMultByMatrix in class AColGroupmatrix - The matrix to multiply with on the leftresult - The result to output the values into, always dense for the purpose of the column groups
parallelizingrl - The row to begin the multiplication from on the lhs matrixru - The row to end the multiplication at on the lhs matrixpublic AColGroup scalarOperation(ScalarOperator op)
AColGroupscalarOperation in class AColGroupop - operation to performpublic AColGroup binaryRowOp(BinaryOperator op, double[] v, boolean sparseSafe, boolean left)
AColGroupbinaryRowOp in class AColGroupop - The operation to executev - The vector of values to apply, should be same length as dictionary length.sparseSafe - True if the operation return 0 on all instances of values in v -- op(v[?], 0)left - Specifies if the operation is executed on the left or right side of the values contained.public void unaryAggregateOperations(AggregateUnaryOperator op, double[] ret)
AColGroupunaryAggregateOperations in class AColGroupop - The operator usedret - Rhe output matrix block.public void unaryAggregateOperations(AggregateUnaryOperator op, double[] result, int rl, int ru)
AColGroupunaryAggregateOperations in class AColGroupop - The operator usedresult - The output matrix block.rl - The Starting Row to do aggregation fromru - The last Row to do aggregation to (not included)public void readFields(DataInput in) throws IOException
AColGroupreadFields in class AColGroupin - data inputIOException - if IOException occurspublic void write(DataOutput out) throws IOException
AColGroupwrite in class AColGroupout - data outputIOException - if IOException occurspublic long getExactSizeOnDisk()
AColGroupgetExactSizeOnDisk in class AColGrouppublic void countNonZerosPerRow(int[] rnnz,
int rl,
int ru)
AColGroupcountNonZerosPerRow in class AColGrouprnnz - non-zeros per rowrl - row lower bound, inclusiveru - row upper bound, exclusivepublic MatrixBlock getValuesAsBlock()
AColGroupgetValuesAsBlock in class AColGrouppublic double[] getValues()
AColGrouppublic boolean isLossy()
AColGrouppublic double getMin()
AColGrouppublic double getMax()
AColGrouppublic final void tsmm(MatrixBlock ret)
AColGrouppublic AColGroup copy()
AColGrouppublic boolean containsValue(double pattern)
AColGroupcontainsValue in class AColGrouppattern - The value to look for.public long getNumberNonZeros()
AColGroupgetNumberNonZeros in class AColGrouppublic int getNumRows()
AColGroupgetNumRows in class AColGrouppublic boolean isDense()
AColGrouppublic void leftMultByAColGroup(AColGroup lhs, MatrixBlock result)
AColGroupleftMultByAColGroup in class AColGrouplhs - The left hand side Column group to multiply with, the left hand side should be considered
transposed.result - The result matrix to insert the result of the multiplication intopublic AColGroup rightMultByMatrix(MatrixBlock right)
AColGrouprightMultByMatrix in class AColGroupright - The matrixBlock on the right of this matrix multiplicationpublic int getNumValues()
AColGroupgetNumValues in class AColGroupCopyright © 2021 The Apache Software Foundation. All rights reserved.