# Name

**HPL_dlaswp02N** pack rows of A into columns of W.
# Synopsis

`#include "hpl.h"`

`void`

`HPL_dlaswp02N(`

`const int`

`M`

,
`const int`

`N`

,
`const double *`

`A`

,
`const int`

`LDA`

,
`double *`

`W0`

,
`double *`

`W`

,
`const int`

`LDW`

,
`const int *`

`LINDXA`

,
`const int *`

`LINDXAU`

`);`

# Description

**HPL_dlaswp02N**
packs scattered rows of an array A into workspace W.
The row offsets in A are specified by LINDXA.
# Arguments

M (local input) const int
On entry, M specifies the number of rows of A that should be
copied into W. M must be at least zero.

N (local input) const int
On entry, N specifies the length of rows of A that should be
copied into W. N must be at least zero.

A (local input) const double *
On entry, A points to an array of dimension (LDA,N). The rows
of this array specified by LINDXA should be copied into W.

LDA (local input) const int
On entry, LDA specifies the leading dimension of the array A.
LDA must be at least MAX(1,M).

W0 (local input/output) double *
On exit, W0 is an array of size (M-1)*LDW+1, that contains
the destination offset in U where the columns of W should be
copied.

W (local output) double *
On entry, W is an array of size (LDW,M). On exit, W contains
the rows LINDXA[i] for i in [0..M) of A stored contiguously
in W(:,i).

LDW (local input) const int
On entry, LDW specifies the leading dimension of the array W.
LDW must be at least MAX(1,N+1).

LINDXA (local input) const int *
On entry, LINDXA is an array of dimension M that contains the
local row indexes of A that should be copied into W.

LINDXAU (local input) const int *
On entry, LINDXAU is an array of dimension M that contains
the local row indexes of U that should be copied into A and
replaced by the rows of W.

# See Also

HPL_dlaswp00N,
HPL_dlaswp10N,
HPL_dlaswp01N,
HPL_dlaswp01T,
HPL_dlaswp02N,
HPL_dlaswp03N,
HPL_dlaswp03T,
HPL_dlaswp04N,
HPL_dlaswp04T,
HPL_dlaswp05N,
HPL_dlaswp05T,
HPL_dlaswp06N,
HPL_dlaswp06T.