---
name: "laqhp"
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/laqhp"
---

# laqhp(3)

laqhp: row/col scale matrix

## NAME

laqhp - laqhp: row/col scale matrix

## SYNOPSIS

### Functions

subroutine **claqhp** (uplo, n, ap, s, scond, amax, equed)\
 **CLAQHP** scales a Hermitian matrix stored in packed form.  subroutine **claqsp** (uplo, n, ap, s, scond, amax, equed)\
 **CLAQSP** scales a symmetric/Hermitian matrix in packed storage, using scaling factors computed by sppequ.  subroutine **dlaqsp** (uplo, n, ap, s, scond, amax, equed)\
 **DLAQSP** scales a symmetric/Hermitian matrix in packed storage, using scaling factors computed by sppequ.  subroutine **slaqsp** (uplo, n, ap, s, scond, amax, equed)\
 **SLAQSP** scales a symmetric/Hermitian matrix in packed storage, using scaling factors computed by sppequ.  subroutine **zlaqhp** (uplo, n, ap, s, scond, amax, equed)\
 **ZLAQHP** scales a Hermitian matrix stored in packed form.  subroutine **zlaqsp** (uplo, n, ap, s, scond, amax, equed)\
 **ZLAQSP** scales a symmetric/Hermitian matrix in packed storage, using scaling factors computed by sppequ.

## Detailed Description

## Function Documentation

### subroutine claqhp (character uplo, integer n, complex, dimension( \* ) ap, real, dimension( \* ) s, real scond, real amax, character equed)

**CLAQHP** scales a Hermitian matrix stored in packed form.

**Purpose:**

```
!>
!> CLAQHP 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.
!>
```

*AP*

```
!>          AP is COMPLEX array, dimension (N*(N+1)/2)
!>          On entry, the upper or lower triangle of the Hermitian matrix
!>          A, packed columnwise in a linear array.  The j-th column of A
!>          is stored in the array AP as follows:
!>          if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
!>          if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.
!>
!>          On exit, the equilibrated matrix:  diag(S) * A * diag(S), in
!>          the same storage format as A.
!>
```

*S*

```
!>          S is REAL array, dimension (N)
!>          The scale factors for A.
!>
```

*SCOND*

```
!>          SCOND is REAL
!>          Ratio of the smallest S(i) to the largest S(i).
!>
```

*AMAX*

```
!>          AMAX is REAL
!>          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.

Definition at line **125** of file **claqhp.f**.

### subroutine claqsp (character uplo, integer n, complex, dimension( \* ) ap, real, dimension( \* ) s, real scond, real amax, character equed)

**CLAQSP** scales a symmetric/Hermitian matrix in packed storage, using scaling factors computed by sppequ.

**Purpose:**

```
!>
!> CLAQSP equilibrates a symmetric 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
!>          symmetric matrix A is stored.
!>          = 'U':  Upper triangular
!>          = 'L':  Lower triangular
!>
```

*N*

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

*AP*

```
!>          AP is COMPLEX array, dimension (N*(N+1)/2)
!>          On entry, the upper or lower triangle of the symmetric matrix
!>          A, packed columnwise in a linear array.  The j-th column of A
!>          is stored in the array AP as follows:
!>          if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
!>          if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.
!>
!>          On exit, the equilibrated matrix:  diag(S) * A * diag(S), in
!>          the same storage format as A.
!>
```

*S*

```
!>          S is REAL array, dimension (N)
!>          The scale factors for A.
!>
```

*SCOND*

```
!>          SCOND is REAL
!>          Ratio of the smallest S(i) to the largest S(i).
!>
```

*AMAX*

```
!>          AMAX is REAL
!>          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.

Definition at line **125** of file **claqsp.f**.

### subroutine dlaqsp (character uplo, integer n, double precision, dimension( \* ) ap, double precision, dimension( \* ) s, double precision scond, double precision amax, character equed)

**DLAQSP** scales a symmetric/Hermitian matrix in packed storage, using scaling factors computed by sppequ.

**Purpose:**

```
!>
!> DLAQSP equilibrates a symmetric 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
!>          symmetric matrix A is stored.
!>          = 'U':  Upper triangular
!>          = 'L':  Lower triangular
!>
```

*N*

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

*AP*

```
!>          AP is DOUBLE PRECISION array, dimension (N*(N+1)/2)
!>          On entry, the upper or lower triangle of the symmetric matrix
!>          A, packed columnwise in a linear array.  The j-th column of A
!>          is stored in the array AP as follows:
!>          if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
!>          if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.
!>
!>          On exit, the equilibrated matrix:  diag(S) * A * diag(S), in
!>          the same storage format as A.
!>
```

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

Definition at line **124** of file **dlaqsp.f**.

### subroutine slaqsp (character uplo, integer n, real, dimension( \* ) ap, real, dimension( \* ) s, real scond, real amax, character equed)

**SLAQSP** scales a symmetric/Hermitian matrix in packed storage, using scaling factors computed by sppequ.

**Purpose:**

```
!>
!> SLAQSP equilibrates a symmetric 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
!>          symmetric matrix A is stored.
!>          = 'U':  Upper triangular
!>          = 'L':  Lower triangular
!>
```

*N*

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

*AP*

```
!>          AP is REAL array, dimension (N*(N+1)/2)
!>          On entry, the upper or lower triangle of the symmetric matrix
!>          A, packed columnwise in a linear array.  The j-th column of A
!>          is stored in the array AP as follows:
!>          if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
!>          if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.
!>
!>          On exit, the equilibrated matrix:  diag(S) * A * diag(S), in
!>          the same storage format as A.
!>
```

*S*

```
!>          S is REAL array, dimension (N)
!>          The scale factors for A.
!>
```

*SCOND*

```
!>          SCOND is REAL
!>          Ratio of the smallest S(i) to the largest S(i).
!>
```

*AMAX*

```
!>          AMAX is REAL
!>          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.

Definition at line **124** of file **slaqsp.f**.

### subroutine zlaqhp (character uplo, integer n, complex\*16, dimension( \* ) ap, double precision, dimension( \* ) s, double precision scond, double precision amax, character equed)

**ZLAQHP** scales a Hermitian matrix stored in packed form.

**Purpose:**

```
!>
!> ZLAQHP 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.
!>
```

*AP*

```
!>          AP is COMPLEX*16 array, dimension (N*(N+1)/2)
!>          On entry, the upper or lower triangle of the Hermitian matrix
!>          A, packed columnwise in a linear array.  The j-th column of A
!>          is stored in the array AP as follows:
!>          if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
!>          if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.
!>
!>          On exit, the equilibrated matrix:  diag(S) * A * diag(S), in
!>          the same storage format as A.
!>
```

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

Definition at line **125** of file **zlaqhp.f**.

### subroutine zlaqsp (character uplo, integer n, complex\*16, dimension( \* ) ap, double precision, dimension( \* ) s, double precision scond, double precision amax, character equed)

**ZLAQSP** scales a symmetric/Hermitian matrix in packed storage, using scaling factors computed by sppequ.

**Purpose:**

```
!>
!> ZLAQSP equilibrates a symmetric 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
!>          symmetric matrix A is stored.
!>          = 'U':  Upper triangular
!>          = 'L':  Lower triangular
!>
```

*N*

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

*AP*

```
!>          AP is COMPLEX*16 array, dimension (N*(N+1)/2)
!>          On entry, the upper or lower triangle of the symmetric matrix
!>          A, packed columnwise in a linear array.  The j-th column of A
!>          is stored in the array AP as follows:
!>          if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
!>          if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.
!>
!>          On exit, the equilibrated matrix:  diag(S) * A * diag(S), in
!>          the same storage format as A.
!>
```

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

Definition at line **125** of file **zlaqsp.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
