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

## Class CLALibLeftMultBy

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

    public class CLALibLeftMultBy
    extends Object

### Constructor Summary

Constructors
`CLALibLeftMultBy()`

### Method Summary

All Methods Static Methods Concrete Methods
`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: ret = t(left) %*% right
`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

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

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

### Constructor Detail

#### CLALibLeftMultBy

    public CLALibLeftMultBy()

### Method Detail

#### 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