Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 11/07/2023
Public

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

Document Table of Contents

?laqsy

Scales a symmetric/Hermitian matrix, using scaling factors computed by ?syequ, ?syequb, ?poequ , or ?poequb.

Syntax

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

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

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

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

Include Files

  • mkl.fi

Description

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

Input Parameters

uplo

CHARACTER*1.

Specifies whether the upper or lower triangular part of the symmetric matrix A is stored.

If uplo = 'U': upper triangular.

If uplo = 'L': lower triangular.

n

INTEGER. The order of the matrix A.

n 0.

a

REAL for slaqsy

DOUBLE PRECISION for dlaqsy

COMPLEX for claqsy

DOUBLE COMPLEX for zlaqsy

Array, DIMENSION (lda,n). On entry, the symmetric 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.

lda

INTEGER. The leading dimension of the array a.

lda max(n,1).

s

REAL for slaqsy/claqsy

DOUBLE PRECISION for dlaqsy/zlaqsy

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

scond

REAL for slaqsy/claqsy

DOUBLE PRECISION for dlaqsy/zlaqsy

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

amax

REAL for slaqsy/claqsy

DOUBLE PRECISION for dlaqsy/zlaqsy

Absolute value of largest matrix entry.

Output Parameters

a

On exit, if equed = 'Y', 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, i.e., A has been replaced by diag(s)*A*diag(s).

Application Notes

The routine uses internal parameters thresh, large, and small, which have the following meaning. thresh is a threshold value used to decide if scaling should be 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.