Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 10/31/2024
Public
Document Table of Contents

?laqhe

Scales a Hermitian matrix.

Syntax

call claqhe( uplo, n, a, lda, s, scond, amax, equed )

call zlaqhe( uplo, n, a, lda, 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.

a

COMPLEX for claqhe

DOUBLE COMPLEX for zlaqhe

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 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 matrix A and the strictly upper triangular part of a is not referenced.

lda

INTEGER. The leading dimension of the array a.

lda max(n,1).

s

REAL for claqhe

DOUBLE PRECISION for zlaqhe

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

scond

REAL for claqhe

DOUBLE PRECISION for zlaqhe

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

amax

REAL for claqhe

DOUBLE PRECISION for zlaqhe

Absolute value of largest matrix entry.

Output Parameters

a

If equed = 'Y', a contains the equilibrated matrix diag(s)*A*diag(s).

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.