---
name: "heswapr"
section: "3"
platform: "linux"
package: "lapack-doc"
version: "3.12.1-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/heswapr"
---

# heswapr(3)

{he,sy}swapr: apply 2-sided permutation

## NAME

heswapr - {he,sy}swapr: apply 2-sided permutation

## SYNOPSIS

### Functions

subroutine **cheswapr** (uplo, n, a, lda, i1, i2)\
 **CHESWAPR** applies an elementary permutation on the rows and columns of a Hermitian matrix.  subroutine **csyswapr** (uplo, n, a, lda, i1, i2)\
 **CSYSWAPR**  subroutine **dsyswapr** (uplo, n, a, lda, i1, i2)\
 **DSYSWAPR** applies an elementary permutation on the rows and columns of a symmetric matrix.  subroutine **ssyswapr** (uplo, n, a, lda, i1, i2)\
 **SSYSWAPR** applies an elementary permutation on the rows and columns of a symmetric matrix.  subroutine **zheswapr** (uplo, n, a, lda, i1, i2)\
 **ZHESWAPR** applies an elementary permutation on the rows and columns of a Hermitian matrix.  subroutine **zsyswapr** (uplo, n, a, lda, i1, i2)\
 **ZSYSWAPR**

## Detailed Description

## Function Documentation

### subroutine cheswapr (character uplo, integer n, complex, dimension( lda, n ) a, integer lda, integer i1, integer i2)

**CHESWAPR** applies an elementary permutation on the rows and columns of a Hermitian matrix.

**Purpose:**

```
!>
!> CHESWAPR applies an elementary permutation on the rows and the columns of
!> a hermitian matrix.
!>
```

**Parameters**

*UPLO*

```
!>          UPLO is CHARACTER*1
!>          Specifies whether the details of the factorization are stored
!>          as an upper or lower triangular matrix.
!>          = 'U':  Upper triangular, form is A = U*D*U**T;
!>          = 'L':  Lower triangular, form is A = L*D*L**T.
!>
```

*N*

```
!>          N is INTEGER
!>          The order of the matrix A.  N >= 0.
!>
```

*A*

```
!>          A is COMPLEX array, dimension (LDA,N)
!>          On entry, the NB diagonal matrix D and the multipliers
!>          used to obtain the factor U or L as computed by CSYTRF.
!>
!>          On exit, if INFO = 0, the (symmetric) inverse of the original
!>          matrix.  If UPLO = 'U', the upper triangular part of the
!>          inverse is formed and the part of A below the diagonal is not
!>          referenced; if UPLO = 'L' the lower triangular part of the
!>          inverse is formed and the part of A above the diagonal is
!>          not referenced.
!>
```

*LDA*

```
!>          LDA is INTEGER
!>          The leading dimension of the array A.  LDA >= max(1,N).
!>
```

*I1*

```
!>          I1 is INTEGER
!>          Index of the first row to swap
!>
```

*I2*

```
!>          I2 is INTEGER
!>          Index of the second row to swap
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **101** of file **cheswapr.f**.

### subroutine csyswapr (character uplo, integer n, complex, dimension( lda, n ) a, integer lda, integer i1, integer i2)

**CSYSWAPR**

**Purpose:**

```
!>
!> CSYSWAPR applies an elementary permutation on the rows and the columns of
!> a symmetric matrix.
!>
```

**Parameters**

*UPLO*

```
!>          UPLO is CHARACTER*1
!>          Specifies whether the details of the factorization are stored
!>          as an upper or lower triangular matrix.
!>          = 'U':  Upper triangular, form is A = U*D*U**T;
!>          = 'L':  Lower triangular, form is A = L*D*L**T.
!>
```

*N*

```
!>          N is INTEGER
!>          The order of the matrix A.  N >= 0.
!>
```

*A*

```
!>          A is COMPLEX array, dimension (LDA,N)
!>          On entry, the N-by-N matrix A. On exit, the permuted matrix
!>          where the rows I1 and I2 and columns I1 and I2 are interchanged.
!>          If UPLO = 'U', the interchanges are applied to the upper
!>          triangular part and the strictly lower triangular part of A is
!>          not referenced; if UPLO = 'L', the interchanges are applied to
!>          the lower triangular part and the part of A above the diagonal
!>          is not referenced.
!>
```

*LDA*

```
!>          LDA is INTEGER
!>          The leading dimension of the array A.  LDA >= max(1,N).
!>
```

*I1*

```
!>          I1 is INTEGER
!>          Index of the first row to swap
!>
```

*I2*

```
!>          I2 is INTEGER
!>          Index of the second row to swap
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **99** of file **csyswapr.f**.

### subroutine dsyswapr (character uplo, integer n, double precision, dimension( lda, \* ) a, integer lda, integer i1, integer i2)

**DSYSWAPR** applies an elementary permutation on the rows and columns of a symmetric matrix.

**Purpose:**

```
!>
!> DSYSWAPR applies an elementary permutation on the rows and the columns of
!> a symmetric matrix.
!>
```

**Parameters**

*UPLO*

```
!>          UPLO is CHARACTER*1
!>          Specifies whether the details of the factorization are stored
!>          as an upper or lower triangular matrix.
!>          = 'U':  Upper triangular, form is A = U*D*U**T;
!>          = 'L':  Lower triangular, form is A = L*D*L**T.
!>
```

*N*

```
!>          N is INTEGER
!>          The order of the matrix A.  N >= 0.
!>
```

*A*

```
!>          A is DOUBLE PRECISION array, dimension (LDA,*)
!>          On entry, the N-by-N matrix A. On exit, the permuted matrix
!>          where the rows I1 and I2 and columns I1 and I2 are interchanged.
!>          If UPLO = 'U', the interchanges are applied to the upper
!>          triangular part and the strictly lower triangular part of A is
!>          not referenced; if UPLO = 'L', the interchanges are applied to
!>          the lower triangular part and the part of A above the diagonal
!>          is not referenced.
!>
```

*LDA*

```
!>          LDA is INTEGER
!>          The leading dimension of the array A.  LDA >= max(1,N).
!>
```

*I1*

```
!>          I1 is INTEGER
!>          Index of the first row to swap
!>
```

*I2*

```
!>          I2 is INTEGER
!>          Index of the second row to swap
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **99** of file **dsyswapr.f**.

### subroutine ssyswapr (character uplo, integer n, real, dimension( lda, \* ) a, integer lda, integer i1, integer i2)

**SSYSWAPR** applies an elementary permutation on the rows and columns of a symmetric matrix.

**Purpose:**

```
!>
!> SSYSWAPR applies an elementary permutation on the rows and the columns of
!> a symmetric matrix.
!>
```

**Parameters**

*UPLO*

```
!>          UPLO is CHARACTER*1
!>          Specifies whether the details of the factorization are stored
!>          as an upper or lower triangular matrix.
!>          = 'U':  Upper triangular, form is A = U*D*U**T;
!>          = 'L':  Lower triangular, form is A = L*D*L**T.
!>
```

*N*

```
!>          N is INTEGER
!>          The order of the matrix A.  N >= 0.
!>
```

*A*

```
!>          A is REAL array, dimension (LDA,*)
!>          On entry, the N-by-N matrix A. On exit, the permuted matrix
!>          where the rows I1 and I2 and columns I1 and I2 are interchanged.
!>          If UPLO = 'U', the interchanges are applied to the upper
!>          triangular part and the strictly lower triangular part of A is
!>          not referenced; if UPLO = 'L', the interchanges are applied to
!>          the lower triangular part and the part of A above the diagonal
!>          is not referenced.
!>
```

*LDA*

```
!>          LDA is INTEGER
!>          The leading dimension of the array A.  LDA >= max(1,N).
!>
```

*I1*

```
!>          I1 is INTEGER
!>          Index of the first row to swap
!>
```

*I2*

```
!>          I2 is INTEGER
!>          Index of the second row to swap
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **99** of file **ssyswapr.f**.

### subroutine zheswapr (character uplo, integer n, complex\*16, dimension( lda, n ) a, integer lda, integer i1, integer i2)

**ZHESWAPR** applies an elementary permutation on the rows and columns of a Hermitian matrix.

**Purpose:**

```
!>
!> ZHESWAPR applies an elementary permutation on the rows and the columns of
!> a hermitian matrix.
!>
```

**Parameters**

*UPLO*

```
!>          UPLO is CHARACTER*1
!>          Specifies whether the details of the factorization are stored
!>          as an upper or lower triangular matrix.
!>          = 'U':  Upper triangular, form is A = U*D*U**T;
!>          = 'L':  Lower triangular, form is A = L*D*L**T.
!>
```

*N*

```
!>          N is INTEGER
!>          The order of the matrix A.  N >= 0.
!>
```

*A*

```
!>          A is COMPLEX*16 array, dimension (LDA,N)
!>          On entry, the NB diagonal matrix D and the multipliers
!>          used to obtain the factor U or L as computed by CSYTRF.
!>
!>          On exit, if INFO = 0, the (symmetric) inverse of the original
!>          matrix.  If UPLO = 'U', the upper triangular part of the
!>          inverse is formed and the part of A below the diagonal is not
!>          referenced; if UPLO = 'L' the lower triangular part of the
!>          inverse is formed and the part of A above the diagonal is
!>          not referenced.
!>
```

*LDA*

```
!>          LDA is INTEGER
!>          The leading dimension of the array A.  LDA >= max(1,N).
!>
```

*I1*

```
!>          I1 is INTEGER
!>          Index of the first row to swap
!>
```

*I2*

```
!>          I2 is INTEGER
!>          Index of the second row to swap
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **101** of file **zheswapr.f**.

### subroutine zsyswapr (character uplo, integer n, complex\*16, dimension( lda, \* ) a, integer lda, integer i1, integer i2)

**ZSYSWAPR**

**Purpose:**

```
!>
!> ZSYSWAPR applies an elementary permutation on the rows and the columns of
!> a symmetric matrix.
!>
```

**Parameters**

*UPLO*

```
!>          UPLO is CHARACTER*1
!>          Specifies whether the details of the factorization are stored
!>          as an upper or lower triangular matrix.
!>          = 'U':  Upper triangular, form is A = U*D*U**T;
!>          = 'L':  Lower triangular, form is A = L*D*L**T.
!>
```

*N*

```
!>          N is INTEGER
!>          The order of the matrix A.  N >= 0.
!>
```

*A*

```
!>          A is COMPLEX*16 array, dimension (LDA,*)
!>          On entry, the N-by-N matrix A. On exit, the permuted matrix
!>          where the rows I1 and I2 and columns I1 and I2 are interchanged.
!>          If UPLO = 'U', the interchanges are applied to the upper
!>          triangular part and the strictly lower triangular part of A is
!>          not referenced; if UPLO = 'L', the interchanges are applied to
!>          the lower triangular part and the part of A above the diagonal
!>          is not referenced.
!>
```

*LDA*

```
!>          LDA is INTEGER
!>          The leading dimension of the array A.  LDA >= max(1,N).
!>
```

*I1*

```
!>          I1 is INTEGER
!>          Index of the first row to swap
!>
```

*I2*

```
!>          I2 is INTEGER
!>          Index of the second row to swap
!>
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line **99** of file **zsyswapr.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
