@classmethod
def matmul(cls, m1, m2):
    """
        Will return a new matrix which is matrix product of m1 and m2.
        """
    if m1.columns() == m2.rows():
        return cls._alloc_matmul(m1, m2)
    else:
        raise ValueError('Matrix size mismatch')
