Developer Reference

Contents

p?laswp

Performs a series of row interchanges on a general rectangular matrix.

Syntax

void
pslaswp
(
char
*direc
,
char
*rowcol
,
MKL_INT
*n
,
float
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_INT
*k1
,
MKL_INT
*k2
,
MKL_INT
*ipiv
);
void
pdlaswp
(
char
*direc
,
char
*rowcol
,
MKL_INT
*n
,
double
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_INT
*k1
,
MKL_INT
*k2
,
MKL_INT
*ipiv
);
void
pclaswp
(
char
*direc
,
char
*rowcol
,
MKL_INT
*n
,
MKL_Complex8
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_INT
*k1
,
MKL_INT
*k2
,
MKL_INT
*ipiv
);
void
pzlaswp
(
char
*direc
,
char
*rowcol
,
MKL_INT
*n
,
MKL_Complex16
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_INT
*k1
,
MKL_INT
*k2
,
MKL_INT
*ipiv
);
Include Files
  • mkl_scalapack.h
Description
The
p?laswp
function
performs a series of row or column interchanges on the distributed matrix
sub(
A
)=
A
(
ia
:
ia
+
n
-1,
ja
:
ja
+
n
-1)
. One interchange is initiated for each of rows or columns
k1
through
k2
of sub(
A
). This
function
assumes that the pivoting information has already been broadcast along the process row or column. Also note that this
function
will only work for
k1-k2
being in the same
mb
(or
nb
) block. If you want to pivot a full matrix, use
p?lapiv
.
Input Parameters
direc
(global)
Specifies in which order the permutation is applied:
=
'F'
- forward,
=
'B'
- backward.
rowcol
(global)
Specifies if the rows or columns are permuted:
=
'R'
- rows,
=
'C'
- columns.
n
(global)
If
rowcol
=
'R'
, the length of the rows of the distributed matrix
A
(*,
ja
:
ja
+
n
-1)
to be permuted;
If
rowcol
=
'C'
, the length of the columns of the distributed matrix
A
(
ia
:
ia
+
n
-1 , *)
to be permuted;
a
(local)
Pointer into the local memory to an array of size
lld_a
*
LOCc
(
n_a
)
. On entry, this array contains the local pieces of the distributed matrix to which the row/columns interchanges will be applied.
ia
(global)
The row index in the global matrix
A
indicating the first row of sub(
A
).
ja
(global)
The column index in the global matrix
A
indicating the first column of sub(
A
).
desca
(global and local) array of size
dlen_
.
The array descriptor for the distributed matrix
A
.
k1
(global)
The first element of
ipiv
for which a row or column interchange will be done.
k2
(global)
The last element of
ipiv
for which a row or column interchange will be done.
ipiv
(local)
Array of size
LOCr
(
m_a
)+
mb_a
for row pivoting and
LOCr
(
n_a
)+
nb_a
for column pivoting. This array is tied to the matrix
A
,
ipiv
[
k
]
=
l
implies rows (or columns)
k
+1
and
l
are to be interchanged
,
k
= 0, 1, ..., size (
ipiv
) -1
.
Output Parameters
A
(local)
On exit, the permuted distributed matrix.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804