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

# Class CLALibLeftMultBy

java.lang.Object
org.apache.sysds.runtime.compress.lib.CLALibLeftMultBy

public final class CLALibLeftMultBy extends Object

## Method Summary

Modifier and Type
Method
Description
`static MatrixBlock`
`leftMultByMatrix(CompressedMatrixBlock right, MatrixBlock left, MatrixBlock ret, int k)`
Left multiplication with two CompressedMatrixBlock following the equation: ret = left %*% right
`static MatrixBlock`
`leftMultByMatrixTransposed(CompressedMatrixBlock right, CompressedMatrixBlock left, MatrixBlock ret, int k)`
Left multiplication with two CompressedMatrixBlock following the equation:
`static MatrixBlock`
`leftMultByMatrixTransposed(CompressedMatrixBlock right, MatrixBlock left, MatrixBlock ret, int k)`
Left multiplication with a CompressedMatrixBlock on the right following the equation:
`static double[]`
`rowSum(MatrixBlock mb, int rl, int ru, int cl, int cu)`

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

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

## Method Details

### leftMultByMatrixTransposed

public static MatrixBlock leftMultByMatrixTransposed(CompressedMatrixBlock right, MatrixBlock left, MatrixBlock ret, int k)
Left multiplication with a CompressedMatrixBlock on the right following the equation:

ret = t(left) %*% right

Parameters:
  `right` - A CompressedMatrixBlock on the right side of the multiplication.
  `left` - A not transposed MatrixBlock.
  `ret` - The result output matrix, this allocation of the object can be used if appropriate, otherwise a new matrix Block is allocated to be returned. This argument can also be null.
  `k` - The number of threads allowed to be used
Returns:
  The result of the matrix multiplication

### leftMultByMatrixTransposed

public static MatrixBlock leftMultByMatrixTransposed(CompressedMatrixBlock right, CompressedMatrixBlock left, MatrixBlock ret, int k)
Left multiplication with two CompressedMatrixBlock following the equation:

ret = t(left) %*% right

Parameters:
  `right` - A CompressedMatrixBlock on the right side of the multiplication.
  `left` - A not transposed CompressedMatrixBlock, but logically inside the function it is considered transposed.
  `ret` - The result output matrix, this allocation of the object can be used if appropriate, otherwise a new matrix Block is allocated to be returned. This argument can also be null.
  `k` - The number of threads allowed to be used
Returns:
  The result of the matrix multiplication

### leftMultByMatrix

public static MatrixBlock leftMultByMatrix(CompressedMatrixBlock right, MatrixBlock left, MatrixBlock ret, int k)
Left multiplication with two CompressedMatrixBlock following the equation: ret = left %*% right

Parameters:
  `right` - A CompressedMatrixBlock on the right side of the multiplication.
  `left` - A MatrixBlock on the left side of the equation
  `ret` - The result output matrix, this allocation of the object can be used if appropriate, otherwise a new matrix Block is allocated to be returned. This argument can also be null.
  `k` - The number of threads allowed to be used
Returns:
  The result of the matrix multiplication

### rowSum

public static double[] rowSum(MatrixBlock mb, int rl, int ru, int cl, int cu)