---
name: "complex16HEauxiliary"
section: "3"
platform: "linux"
package: "liblapack-doc"
version: "3.11.0-2"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/complex16HEauxiliary"
---

# complex16HEauxiliary(3)

complex16

## NAME

complex16HEauxiliary - complex16

## SYNOPSIS

### Functions

subroutine **zheswapr** (UPLO, N, A, LDA, I1, I2)\
 **ZHESWAPR** applies an elementary permutation on the rows and columns of a Hermitian matrix.  double precision function **zlanhe** (NORM, UPLO, N, A, LDA, WORK)\
 **ZLANHE** returns the value of the 1-norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a complex Hermitian matrix.  subroutine **zlaqhe** (UPLO, N, A, LDA, S, SCOND, AMAX, EQUED)\
 **ZLAQHE** scales a Hermitian matrix.

## Detailed Description

This is the group of complex16 auxiliary functions for HE matrices

## Function Documentation

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

### double precision function zlanhe (character NORM, character UPLO, integer N, complex\*16, dimension( lda, \* ) A, integer LDA, double precision, dimension( \* ) WORK)

**ZLANHE** returns the value of the 1-norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a complex Hermitian matrix.

**Purpose:**

```
 ZLANHE  returns the value of the one norm,  or the Frobenius norm, or
 the  infinity norm,  or the  element of  largest absolute value  of a
 complex hermitian matrix A.
```

**Returns**

ZLANHE

```
    ZLANHE = ( max(abs(A(i,j))), NORM = 'M' or 'm'
             (
             ( norm1(A),         NORM = '1', 'O' or 'o'
             (
             ( normI(A),         NORM = 'I' or 'i'
             (
             ( normF(A),         NORM = 'F', 'f', 'E' or 'e'
 where  norm1  denotes the  one norm of a matrix (maximum column sum),
 normI  denotes the  infinity norm  of a matrix  (maximum row sum) and
 normF  denotes the  Frobenius norm of a matrix (square root of sum of
 squares).  Note that  max(abs(A(i,j)))  is not a consistent matrix norm.
```

**Parameters**

*NORM*

```
          NORM is CHARACTER*1
          Specifies the value to be returned in ZLANHE as described
          above.
```

*UPLO*

```
          UPLO is CHARACTER*1
          Specifies whether the upper or lower triangular part of the
          hermitian matrix A is to be referenced.
          = 'U':  Upper triangular part of A is referenced
          = 'L':  Lower triangular part of A is referenced
```

*N*

```
          N is INTEGER
          The order of the matrix A.  N >= 0.  When N = 0, ZLANHE is
          set to zero.
```

*A*

```
          A is COMPLEX*16 array, dimension (LDA,N)
          The hermitian matrix A.  If UPLO = 'U', the leading n by n
          upper triangular part of A contains the upper triangular part
          of the matrix A, and the strictly lower triangular part of A
          is not referenced.  If UPLO = 'L', the leading n by n lower
          triangular part of A contains the lower triangular part of
          the matrix A, and the strictly upper triangular part of A is
          not referenced. Note that the imaginary parts of the diagonal
          elements need not be set and are assumed to be zero.
```

*LDA*

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

*WORK*

```
          WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)),
          where LWORK >= N when NORM = 'I' or '1' or 'O'; otherwise,
          WORK is not referenced.
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

### subroutine zlaqhe (character UPLO, integer N, complex\*16, dimension( lda, \* ) A, integer LDA, double precision, dimension( \* ) S, double precision SCOND, double precision AMAX, character EQUED)

**ZLAQHE** scales a Hermitian matrix.

**Purpose:**

```
 ZLAQHE equilibrates a Hermitian matrix A using the scaling factors
 in the vector S.
```

**Parameters**

*UPLO*

```
          UPLO is CHARACTER*1
          Specifies whether the upper or lower triangular part of the
          Hermitian matrix A is stored.
          = 'U':  Upper triangular
          = 'L':  Lower triangular
```

*N*

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

*A*

```
          A is COMPLEX*16 array, dimension (LDA,N)
          On entry, the Hermitian matrix A.  If UPLO = 'U', the leading
          n by n upper triangular part of A contains the upper
          triangular part of the matrix A, and the strictly lower
          triangular part of A is not referenced.  If UPLO = 'L', the
          leading n by n lower triangular part of A contains the lower
          triangular part of the matrix A, and the strictly upper
          triangular part of A is not referenced.
          On exit, if EQUED = 'Y', the equilibrated matrix:
          diag(S) * A * diag(S).
```

*LDA*

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

*S*

```
          S is DOUBLE PRECISION array, dimension (N)
          The scale factors for A.
```

*SCOND*

```
          SCOND is DOUBLE PRECISION
          Ratio of the smallest S(i) to the largest S(i).
```

*AMAX*

```
          AMAX is DOUBLE PRECISION
          Absolute value of largest matrix entry.
```

*EQUED*

```
          EQUED is CHARACTER*1
          Specifies whether or not equilibration was done.
          = 'N':  No equilibration.
          = 'Y':  Equilibration was done, i.e., A has been replaced by
                  diag(S) * A * diag(S).
```

**Internal Parameters:**

```
  THRESH is a threshold value used to decide if scaling should be done
  based on the ratio of the scaling factors.  If SCOND < THRESH,
  scaling is done.
  LARGE and SMALL are threshold values used to decide if scaling should
  be done based on the absolute size of the largest matrix element.
  If AMAX > LARGE or AMAX < SMALL, scaling is done.
```

**Author**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
