class_docstr: A MatrixSlice of a Matrix Expression
  
  Examples
  ========
  
  >>> from sympy import MatrixSlice, ImmutableMatrix
  >>> M = ImmutableMatrix(4, 4, range(16))
  >>> M
  Matrix([
  [ 0,  1,  2,  3],
  [ 4,  5,  6,  7],
  [ 8,  9, 10, 11],
  [12, 13, 14, 15]])
  
  >>> B = MatrixSlice(M, (0, 2), (2, 4))
  >>> ImmutableMatrix(B)
  Matrix([
  [2, 3],
  [6, 7]])
class_docstr_tok: ["A","MatrixSlice","of","a","Matrix","Expression","Examples","========",">",">",">","from","sympy","import","MatrixSlice",",","ImmutableMatrix",">",">",">","M","=","ImmutableMatrix","(","4",",","4",",","range","(","16",")",")",">",">",">","M","Matrix","(","[","[","0",",","1",",","2",",","3","]",",","[","4",",","5",",","6",",","7","]",",","[","8",",","9",",","10",",","11","]",",","[","12",",","13",",","14",",","15","]","]",")",">",">",">","B","=","MatrixSlice","(","M",",","(","0",",","2",")",",","(","2",",","4",")",")",">",">",">","ImmutableMatrix","(","B",")","Matrix","(","[","[","2",",","3","]",",","[","6",",","7","]","]",")"]
code: def __new__(cls, parent, rowslice, colslice):
      rowslice = normalize(rowslice, parent.shape[0])
      colslice = normalize(colslice, parent.shape[1])
      if not (len(rowslice) == len(colslice) == 3):
          raise IndexError()
      if (
          (0 > rowslice[0]) == True
          or (parent.shape[0] < rowslice[1]) == True
          or (0 > colslice[0]) == True
          or (parent.shape[1] < colslice[1]) == True
      ):
          raise IndexError()
      if isinstance(parent, MatrixSlice):
          return mat_slice_of_slice(parent, rowslice, colslice)
      return Basic.__new__(
          cls, parent, Tuple(*rowslice), Tuple(*colslice)
      )
  
file_path: sympy/sympy/matrices/expressions/slice.py
imports: from sympy.matrices.expressions.matexpr import MatrixExpr
  from sympy.core.basic import Basic
  from sympy.core.containers import Tuple
  from sympy.functions.elementary.integers import floor
label_desc: Use image node_id 1 for calling the MatrixSlice obj's underlying member method code with example usage: obj.__new__(cls, parent, rowslice, colslice) and returns: Basic, mat_slice_of_slice