code: def block_cat(self, Y0, Y1):
          r
  
          if self.y0swapaxes:
              return np.concatenate((np.swapaxes(Y0, self.cri.axisC,
                                    self.cri.axisM), Y1), axis=self.blkaxis)
          else:
              return super(ConvTwoBlockCnstrnt, self).block_cat(Y0, Y1)
docs: r"""Concatenate components corresponding to :math:`\mathbf{y}_0`
          and :math:`\mathbf{y}_1` to form :math:`\mathbf{y}\;\;`.
          The method from parent class :class:`.ADMMTwoBlockCnstrnt` is
          overridden here to allow swapping of C (channel) and M
          (filter) axes in block 0 so that it can be concatenated on
          axis M with block 1. This is necessary because block 0 has the
          dimensions of S (N x C x K x 1) while block 1 has the
          dimensions of X (N x 1 x K x M).