Class LibMatrixBincell
java.lang.Object
org.apache.sysds.runtime.matrix.data.LibMatrixBincell
Library for binary cellwise operations (incl arithmetic, relational, etc). Currently,
we don't have dedicated support for the individual operations but for categories of
operations and combinations of dense/sparse and MM/MV. Safe/unsafe refer to sparse-safe
and sparse-unsafe operations.
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionstatic MatrixBlockbincellOp(MatrixBlock m1, MatrixBlock m2, MatrixBlock ret, BinaryOperator op) static MatrixBlockbincellOpInPlace(MatrixBlock m1ret, MatrixBlock m2, BinaryOperator op) NOTE: operations in place always require m1 and m2 to be of equal dimensions defaults to right side operations, updating the m1 matrix with like: m1ret op m2static MatrixBlockbincellOpInPlaceLeft(MatrixBlock m1ret, MatrixBlock m2, BinaryOperator op) Left side operations, updating the m1 matrix like: m2 op m1retstatic MatrixBlockbincellOpInPlaceRight(MatrixBlock m1ret, MatrixBlock m2, BinaryOperator op) Right side operations, updating the m1 matrix like: m1ret op m2static MatrixBlockbincellOpScalar(MatrixBlock m1, MatrixBlock ret, ScalarOperator op, int k) static voidstatic BinaryOperatorstatic MatrixBlockuncellOp(MatrixBlock m1, MatrixBlock ret, UnaryOperator op)
-
Method Details
-
uncellOp
-
bincellOpScalar
public static MatrixBlock bincellOpScalar(MatrixBlock m1, MatrixBlock ret, ScalarOperator op, int k) -
bincellOp
public static MatrixBlock bincellOp(MatrixBlock m1, MatrixBlock m2, MatrixBlock ret, BinaryOperator op) -
bincellOpInPlace
NOTE: operations in place always require m1 and m2 to be of equal dimensions defaults to right side operations, updating the m1 matrix with like: m1ret op m2- Parameters:
m1ret- result matrix updated in placem2- matrix block the other matrix to take values fromop- binary operator the operator that is placed in the middle of m1ret and m2- Returns:
- The same pointer to m1ret argument, and the updated result.
-
bincellOpInPlaceRight
public static MatrixBlock bincellOpInPlaceRight(MatrixBlock m1ret, MatrixBlock m2, BinaryOperator op) Right side operations, updating the m1 matrix like: m1ret op m2- Parameters:
m1ret- result matrix updated in placem2- matrix block the other matrix to take values fromop- binary operator the operator that is placed in the middle of m1ret and m2- Returns:
- The result MatrixBlock (same object pointer to m1ret argument)
-
bincellOpInPlaceLeft
public static MatrixBlock bincellOpInPlaceLeft(MatrixBlock m1ret, MatrixBlock m2, BinaryOperator op) Left side operations, updating the m1 matrix like: m2 op m1ret- Parameters:
m1ret- result matrix updated in placem2- matrix block the other matrix to take values fromop- binary operator the operator that is placed in the middle of m1ret and m2- Returns:
- The result MatrixBlock (same object pointer to m1ret argument)
-
getBinaryAccessType
-
getBinaryAccessTypeExtended
public static LibMatrixBincell.BinaryAccessType getBinaryAccessTypeExtended(MatrixBlock m1, MatrixBlock m2) -
isValidDimensionsBinary
-
replaceOpWithSparseSafeIfApplicable
public static BinaryOperator replaceOpWithSparseSafeIfApplicable(MatrixBlock m1, MatrixBlock m2, BinaryOperator op)
-