Package org.apache.sysds.runtime.compress.lib

## Interface CLALibSelectionMult

    public interface CLALibSelectionMult

This lib is responsible for selecting and extracting specific rows or columns from a compressed matrix. The operation performed is like a left matrix multiplication where the left side only have max 1 non zero per row.

### Field Summary

Fields
`static org.apache.commons.logging.Log` `LOG`

### Method Summary

Static Methods
`static boolean` `isSelectionMatrix​(MatrixBlock mb)` Analyze if the given matrix is a selection matrix if on the left side of a matrix multiplication.
`static MatrixBlock` `leftSelection​(CompressedMatrixBlock right, MatrixBlock left, MatrixBlock ret, int k)` Left selection where the left matrix is sparse with a max 1 non zero per row and that non zero is a 1.

### Field Detail

#### LOG

    static final org.apache.commons.logging.Log LOG

### Method Detail

#### leftSelection

    static MatrixBlock leftSelection​(CompressedMatrixBlock right,
                                     MatrixBlock left,
                                     MatrixBlock ret,
                                     int k)

Left selection where the left matrix is sparse with a max 1 non zero per row and that non zero is a 1.

Parameters:
  `right` - Right hand side compressed matrix
  `left` - Left hand side matrix
  `ret` - Output matrix to put the result into.
  `k` - The parallelization degree.
Returns:
  The selected rows and columns of the input matrix

#### isSelectionMatrix

    static boolean isSelectionMatrix​(MatrixBlock mb)

Analyze if the given matrix is a selection matrix if on the left side of a matrix multiplication.

Parameters:
  `mb` - The given matrix that should be on the left side
Returns:
  If it is selective