96 const SrcViewType& src,
97 const bool dstConstStride,
98 const bool srcConstStride,
99 const DstWhichVecsType& dstWhichVecs,
100 const SrcWhichVecsType& srcWhichVecs) {
102 using Kokkos::subview;
103 using size_type =
typename DstViewType::size_type;
105 if (dstConstStride && srcConstStride) {
106 copyConvertResolvingPossibleAliasing(dst, src);
108 const size_type numCols = dstConstStride ?
static_cast<size_type
>(srcWhichVecs.size()) :
static_cast<size_type
>(dstWhichVecs.size());
109 for (size_type j = 0; j < numCols; ++j) {
110 const size_type dst_col = dstConstStride ? j :
static_cast<size_type
>(dstWhichVecs[j]);
111 const auto dst_j = subview(dst, ALL(), dst_col);
112 const size_type src_col = srcConstStride ? j :
static_cast<size_type
>(srcWhichVecs[j]);
113 const auto src_j = subview(src, ALL(), src_col);
115 copyConvertResolvingPossibleAliasing(dst_j, src_j);