# ?laswp

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

## Syntax

call slaswp( n, a, lda, k1, k2, ipiv, incx )

call dlaswp( n, a, lda, k1, k2, ipiv, incx )

call claswp( n, a, lda, k1, k2, ipiv, incx )

call zlaswp( n, a, lda, k1, k2, ipiv, incx )

## Description

The routine performs a series of row interchanges on the matrix A. One row interchange is initiated for each of rows k1 through k2 of A.

## Input Parameters

n

  INTEGER. The number of columns of the matrix A.

a

  REAL for slaswp

  DOUBLE PRECISION for dlaswp

  COMPLEX for claswp

  COMPLEX*16 for zlaswp.

  Array, DIMENSION (`lda, n`).

  On entry, the matrix of column dimension n to which the row interchanges will be applied.

lda

  INTEGER. The leading dimension of the array a.

k1

  INTEGER. The first element of ipiv for which a row interchange will be done.

k2

  INTEGER. The last element of ipiv for which a row interchange will be done.

ipiv

  INTEGER.

  Array, DIMENSION (`k2*|incx|`).

  The vector of pivot indices. Only the elements in positions k1 through k2 of ipiv are accessed.

  `ipiv(k) = l` implies rows k and l are to be interchanged.

incx

  INTEGER. The increment between successive values of ipiv. If ipiv is negative, the pivots are applied in reverse order.

## Output Parameters

a

  On exit, the permuted matrix.

Parent topic: Auxiliary Routines