code: def block_sep1(self, Y):
          
  
          Y1 = Y[..., self.cri.M:]
  
          # If cri.Cd > 1 (multi-channel dictionary), we need to undo the
          # reshape performed in block_cat
          if self.cri.Cd > 1:
              shp = list(Y1.shape)
              shp[self.cri.axisM] = self.cri.dimN
              shp[self.cri.axisC] = self.cri.Cd
              Y1 = Y1.reshape(shp)
  
          # Axes are swapped here for similar reasons to those
          # motivating swapping in cbpdn.ConvTwoBlockCnstrnt.block_sep0
          Y1 = np.swapaxes(Y1[..., np.newaxis], self.cri.axisM, -1)
  
          return Y1
docs: Separate variable into component corresponding to Y1 in Y.