54 typedef typename MV_in::scalar_type InScalar;
55 typedef typename MV_out::scalar_type OutScalar;
56 typedef typename MV_in::local_ordinal_type LO;
57 typedef typename MV_in::global_ordinal_type GO;
58 typedef typename MV_in::node_type NO;
66 const Teuchos::ArrayView<const LO>
perm)
const {
67 using Teuchos::ArrayRCP;
68 const size_t numRows =
X_out.getLocalLength();
69 const size_t numVecs =
X_in.getNumVectors();
71 for (
size_t j = 0;
j < numVecs; ++
j) {
74 for (
size_t i = 0;
i < numRows; ++
i) {
89 const Teuchos::ArrayView<const LO>
perm,
91 using Teuchos::ArrayRCP;
93 const size_t numVecs =
X_in.getNumVectors();
95 for (
size_t j = 0;
j < numVecs; ++
j) {
100 for (LO
k = 0;
k < blockSize;
k++) {
111 const Teuchos::ArrayView<const LO>
perm)
const {
112 using Teuchos::ArrayRCP;
113 const size_t numRows =
X_out.getLocalLength();
114 const size_t numVecs =
X_in.getNumVectors();
116 for (
size_t j = 0;
j < numVecs; ++
j) {
119 for (
size_t i = 0;
i < numRows; ++
i) {
131 const Teuchos::ArrayView<const LO>
perm,
132 LO blockSize)
const {
133 using Teuchos::ArrayRCP;
135 const size_t numVecs =
X_in.getNumVectors();
137 for (
size_t j = 0;
j < numVecs; ++
j) {
142 for (LO
k = 0;
k < blockSize;
k++) {
153 template <
typename InView,
typename OutView>
156 const Teuchos::ArrayView<const LO>
perm)
const {
159 for (
size_t j = 0;
j <
X_out.extent(1); ++
j) {
160 for (
size_t i = 0;
i <
X_out.extent(0); ++
i) {
167 template <
typename InView,
typename OutView>
170 const Teuchos::ArrayView<const LO>
perm)
const {
172 for (
size_t j = 0;
j <
X_out.extent(1); ++
j) {
173 for (
size_t i = 0;
i <
X_out.extent(0); ++
i) {
180 template <
typename InView,
typename OutView>
183 const Teuchos::ArrayView<const LO>
perm,
184 LO blockSize)
const {
188 for (
size_t j = 0;
j <
X_out.extent(1); ++
j) {
191 for (LO
k = 0;
k < blockSize;
k++) {
198 template <
typename InView,
typename OutView>
201 const Teuchos::ArrayView<const LO>
perm,
202 LO blockSize)
const {
206 for (
size_t j = 0;
j <
X_out.extent(1); ++
j) {
209 for (LO
k = 0;
k < blockSize;
k++) {
219 template <
typename InView>
222 const Teuchos::ArrayView<const LO>
perm)
const {
225 size_t numRows =
X_out.getLocalLength();
226 for (
size_t j = 0;
j <
X_out.getNumVectors(); ++
j) {
227 Teuchos::ArrayRCP<OutScalar>
X_out_j =
X_out.getDataNonConst(
j);
228 for (
size_t i = 0;
i < numRows; ++
i) {
235 template <
typename InView>
238 const Teuchos::ArrayView<const LO>
perm)
const {
239 size_t numRows =
X_out.getLocalLength();
241 for (
size_t j = 0;
j <
X_in.extent(1); ++
j) {
242 Teuchos::ArrayRCP<const OutScalar>
X_out_j =
X_out.getData(
j);
243 for (
size_t i = 0;
i < numRows; ++
i) {
250 template <
typename InView>
253 const Teuchos::ArrayView<const LO>
perm,
254 LO blockSize)
const {
258 for (
size_t j = 0;
j <
X_out.getNumVectors(); ++
j) {
259 Teuchos::ArrayRCP<OutScalar>
X_out_j =
X_out.getDataNonConst(
j);
262 for (LO
k = 0;
k < blockSize;
k++) {
269 template <
typename InView>
272 const Teuchos::ArrayView<const LO>
perm,
273 LO blockSize)
const {
276 for (
size_t j = 0;
j <
X_in.extent(1); ++
j) {
277 Teuchos::ArrayRCP<const OutScalar>
X_out_j =
X_out.getData(
j);
280 for (LO
k = 0;
k < blockSize;
k++) {