Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?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
mkl.fi
Description
slaqsb dlaqsb claqsb zlaqsb
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 DOUBLE COMPLEX 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) ≤ i ≤ j ; if uplo = 'L' , ab(1+i-j,j) = A(i,j) for j ≤ i ≤ 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 of the band matrix A that can be A = U^{T}*U or A = L*L^{T} for real flavors and A = U^{H}*U or A = L*L^{H} for complex flavors, 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.