# 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.