Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 3/31/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

?laqhp

Scales a Hermitian matrix stored in packed form.

Syntax

call claqhp( uplo, n, ap, s, scond, amax, equed )

call zlaqhp( uplo, n, ap, s, scond, amax, equed )

Include Files
  • mkl.fi
Description

The routine equilibrates a Hermitian matrix A using the scaling factors in the vector s.

Input Parameters
uplo

CHARACTER*1.

Specifies whether to store the upper or lower part of the Hermitian matrix A.

If uplo = 'U', the upper triangular part of A;

if uplo = 'L', the lower triangular part of A.

n

INTEGER. The order of the matrix A.

n 0.

ap

COMPLEX for claqhp

DOUBLE COMPLEX for zlaqhp

Array, DIMENSION (n*(n+1)/2). The Hermitian matrix A.

  • If uplo = 'U', the upper triangular part of the Hermitian matrix A is stored in the packed array ap as follows:

    ap(i+(j-1)*j/2) = A(i,j) for 1 ≤ ij.

  • If uplo = 'L', the lower triangular part of Hermitian matrix A is stored in the packed array ap as follows:

    ap(i+(j-1)*(2n-j)/2) = A(i,j) for jin.

s

REAL for claqhp

DOUBLE PRECISION for zlaqhp

Array, DIMENSION (n). The scale factors for A.

scond

REAL for claqhp

DOUBLE PRECISION for zlaqhp

Ratio of the smallest s(i) to the largest s(i).

amax

REAL for claqhp

DOUBLE PRECISION for zlaqhp

Absolute value of largest matrix entry.

Output Parameters
a

If equed = 'Y', a contains the equilibrated matrix diag(s)*A*diag(s) in the same storage format as on input.

equed

CHARACTER*1.

Specifies whether or not equilibration was done.

If equed = 'N': No equilibration.

If equed = 'Y': Equilibration was done, that is, A has been replaced by diag(s)*A*diag(s).

Application Notes

The routine uses internal parameters thresh, large, and small. The parameter 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.

The large and small parameters 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.