public class ColGroupUncompressed extends AColGroup
AColGroup.CompressionType| Constructor and Description | 
|---|
ColGroupUncompressed(int[] colIndicesList,
                    MatrixBlock rawBlock,
                    boolean transposed)
Main constructor for Uncompressed ColGroup. 
 | 
ColGroupUncompressed(MatrixBlock data)
Constructor for allocating a single uncompressed column group. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
AColGroup | 
binaryRowOp(BinaryOperator op,
           double[] v,
           boolean sparseSafe,
           boolean left)
Perform a binary row operation. 
 | 
void | 
computeColSums(double[] c,
              int nRows)
Compute the column sum 
 | 
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 | 
decompressToBlock(MatrixBlock target,
                 int rl,
                 int ru,
                 int offT)
Decompress the contents of the column group without counting non zeros 
 | 
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(int nRows)
Get the number of nonZeros contained in this column group. 
 | 
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,
    int nRows)
Do a transposed self matrix multiplication on the left side t(x) %*% x. 
 | 
void | 
tsmmAColGroup(AColGroup lhs,
             MatrixBlock result)
Matrix multiply with this other column group, but:
 
 1. 
 | 
void | 
unaryAggregateOperations(AggregateUnaryOperator op,
                        double[] result,
                        int nRows,
                        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. 
 | 
colSum, decompressToBlock, 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 ColGroupUncompressed(MatrixBlock data)
data - matrix blockpublic 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 decompressToBlock(MatrixBlock target, int rl, int ru, int offT)
AColGroupdecompressToBlock 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 from, this allows us to decompress into smaller matrices.public 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 containedpublic void unaryAggregateOperations(AggregateUnaryOperator op, double[] result, int nRows, int rl, int ru)
AColGroupunaryAggregateOperations in class AColGroupop - The operator usedresult - The output matrix blocknRows - The total number of rows in the Column Grouprl - 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, int nRows)
AColGrouppublic AColGroup copy()
AColGrouppublic boolean containsValue(double pattern)
AColGroupcontainsValue in class AColGrouppattern - The value to look for.public long getNumberNonZeros(int nRows)
AColGroupgetNumberNonZeros in class AColGroupnRows - The number of rows in the column group, this is used for groups that does not contain information
              about how many rows they have.public 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 void tsmmAColGroup(AColGroup lhs, MatrixBlock result)
AColGrouptsmmAColGroup in class AColGrouplhs - The other Column group to multiply withresult - The result matrix to put the results intopublic AColGroup rightMultByMatrix(MatrixBlock right)
AColGrouprightMultByMatrix in class AColGroupright - The matrixBlock on the right of this matrix multiplicationpublic int getNumValues()
AColGroupgetNumValues in class AColGrouppublic AColGroup replace(double pattern, double replace)
AColGrouppublic void computeColSums(double[] c,
                           int nRows)
AColGroupcomputeColSums in class AColGroupc - The array to add the column sum to.nRows - The number of rows in the column group.Copyright © 2021 The Apache Software Foundation. All rights reserved.