?laqsb

Scales a symmetric band matrix, using scaling factors computed by ?pbequ.

Syntax

call slaqsb( uplo, n, kd, ab, ldab, s, scond, amax, equed )

call dlaqsb( uplo, n, kd, ab, ldab, s, scond, amax, equed )

call claqsb( uplo, n, kd, ab, ldab, s, scond, amax, equed )

call zlaqsb( uplo, n, kd, ab, ldab, s, scond, amax, equed )

Include Files

The FORTRAN 77 interfaces are specified in the mkl_lapack.fi include file (to be used in Fortran programs) and in the mkl_lapack.h include file (to be used in C programs).

Description

The routine equilibrates a symmetric band 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.

kd

INTEGER. The number of super-diagonals of the matrix A if uplo = 'U', or the number of sub-diagonals if uplo = 'L'.

kd 0.

ab

REAL for slaqsb

DOUBLE PRECISION for dlaqsb

COMPLEX for claqsb

COMPLEX*16 for zlaqsb

Array, DIMENSION (ldab,n). On entry, the upper or lower triangle of the symmetric band matrix A, stored in the first kd+1 rows of the array. The j-th column of A is stored in the j-th column of the array ab as follows:

if uplo = 'U', ab(kd+1+i-j,j) = A(i,j) for max(1,j-kd) ≤ ij;

if uplo = 'L', ab(1+i-j,j) = A(i,j) for ji ≤ min(n,j+kd).

ldab

INTEGER. The leading dimension of the array ab.

ldab kd+1.

s

REAL for slaqsb/claqsb

DOUBLE PRECISION for dlaqsb/zlaqsb

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

scond

REAL for slaqsb/claqsb

DOUBLE PRECISION for dlaqsb/zlaqsb

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

amax

REAL for slaqsb/claqsb

DOUBLE PRECISION for dlaqsb/zlaqsb

Absolute value of largest matrix entry.

Output Parameters

ab

On exit, if info = 0, the triangular factor U or L from the Cholesky factorization A = U'*U or A = L*L' of the band matrix A, in the same storage format as A.

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


Submit feedback on this help topic

Copyright © 1994 - 2010, Intel Corporation. All rights reserved.