Class LibMatrixBincell


  • public class LibMatrixBincell
    extends Object
    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.
    • Method Detail

      • bincellOp

        public static void bincellOp​(MatrixBlock m1,
                                     MatrixBlock ret,
                                     ScalarOperator op)
        matrix-scalar, scalar-matrix binary operations.
        Parameters:
        m1 - input matrix
        ret - result matrix
        op - scalar operator
      • bincellOp

        public static void bincellOp​(MatrixBlock m1,
                                     MatrixBlock m2,
                                     MatrixBlock ret,
                                     BinaryOperator op)
        matrix-matrix binary operations, MM, MV
        Parameters:
        m1 - input matrix 1
        m2 - input matrix 2
        ret - result matrix
        op - binary operator
      • bincellOpInPlace

        public static MatrixBlock bincellOpInPlace​(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 m2
        Parameters:
        m1ret - result matrix updated in place
        m2 - matrix block the other matrix to take values from
        op - 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 place
        m2 - matrix block the other matrix to take values from
        op - 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 place
        m2 - matrix block the other matrix to take values from
        op - binary operator the operator that is placed in the middle of m1ret and m2
        Returns:
        The result MatrixBlock (same object pointer to m1ret argument)
      • isValidDimensionsBinaryExtended

        public static void isValidDimensionsBinaryExtended​(MatrixBlock m1,
                                                           MatrixBlock m2)
      • isAllDense

        public static boolean isAllDense​(MatrixBlock... mb)