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
68 using Teuchos::ArrayRCP;
69 const size_t numRows =
X_out.getLocalLength ();
70 const size_t numVecs =
X_in.getNumVectors ();
72 for (
size_t j = 0;
j < numVecs; ++
j) {
75 for (
size_t i = 0;
i < numRows; ++
i) {
90 const Teuchos::ArrayView<const LO>
perm,
93 using Teuchos::ArrayRCP;
95 const size_t numVecs =
X_in.getNumVectors ();
97 for (
size_t j = 0;
j < numVecs; ++
j) {
102 for (LO
k = 0;
k < blockSize;
k++) {
113 const Teuchos::ArrayView<const LO>
perm)
const
115 using Teuchos::ArrayRCP;
116 const size_t numRows =
X_out.getLocalLength();
117 const size_t numVecs =
X_in.getNumVectors();
119 for (
size_t j = 0;
j < numVecs; ++
j) {
122 for (
size_t i = 0;
i < numRows; ++
i) {
134 const Teuchos::ArrayView<const LO>
perm,
137 using Teuchos::ArrayRCP;
139 const size_t numVecs =
X_in.getNumVectors ();
141 for (
size_t j = 0;
j < numVecs; ++
j) {
146 for (LO
k = 0;
k < blockSize;
k++) {
157 template<
typename InView,
typename OutView>
160 const Teuchos::ArrayView<const LO>
perm)
const
164 for(
size_t j = 0;
j <
X_out.extent(1); ++
j) {
165 for(
size_t i = 0;
i <
X_out.extent(0); ++
i) {
172 template<
typename InView,
typename OutView>
175 const Teuchos::ArrayView<const LO>
perm)
const
178 for(
size_t j = 0;
j <
X_out.extent(1); ++
j) {
179 for(
size_t i = 0;
i <
X_out.extent(0); ++
i) {
186 template<
typename InView,
typename OutView>
189 const Teuchos::ArrayView<const LO>
perm,
195 for(
size_t j = 0;
j <
X_out.extent(1); ++
j) {
198 for(LO
k = 0;
k < blockSize;
k++) {
205 template<
typename InView,
typename OutView>
208 const Teuchos::ArrayView<const LO>
perm,
214 for(
size_t j = 0;
j <
X_out.extent(1); ++
j) {
217 for(LO
k = 0;
k < blockSize;
k++) {
227 template<
typename InView>
230 const Teuchos::ArrayView<const LO>
perm)
const
234 size_t numRows =
X_out.getLocalLength();
235 for(
size_t j = 0;
j <
X_out.getNumVectors(); ++
j) {
236 Teuchos::ArrayRCP<OutScalar>
X_out_j =
X_out.getDataNonConst(
j);
237 for(
size_t i = 0;
i < numRows; ++
i) {
244 template<
typename InView>
247 const Teuchos::ArrayView<const LO>
perm)
const
249 size_t numRows =
X_out.getLocalLength();
251 for(
size_t j = 0;
j <
X_in.extent(1); ++
j) {
252 Teuchos::ArrayRCP<const OutScalar>
X_out_j =
X_out.getData(
j);
253 for(
size_t i = 0;
i < numRows; ++
i) {
260 template<
typename InView>
263 const Teuchos::ArrayView<const LO>
perm,
269 for(
size_t j = 0;
j <
X_out.getNumVectors(); ++
j) {
270 Teuchos::ArrayRCP<OutScalar>
X_out_j =
X_out.getDataNonConst(
j);
273 for(LO
k = 0;
k < blockSize;
k++) {
280 template<
typename InView>
283 const Teuchos::ArrayView<const LO>
perm,
288 for(
size_t j = 0;
j <
X_in.extent(1); ++
j) {
289 Teuchos::ArrayRCP<const OutScalar>
X_out_j =
X_out.getData(
j);
292 for(LO
k = 0;
k < blockSize;
k++) {