Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?syequb
Computes row and column scaling factors intended to equilibrate a symmetric indefinite matrix and reduce its condition number.
Syntax
call ssyequb ( uplo , n , a , lda , s , scond , amax , work , info )
call dsyequb ( uplo , n , a , lda , s , scond , amax , work , info )
call csyequb ( uplo , n , a , lda , s , scond , amax , work , info )
call zsyequb ( uplo , n , a , lda , s , scond , amax , work , info )
Include Files
mkl.fi , mkl_lapack.f90
Description
ssyequb dsyequb csyequb zsyequb
The routine computes row and column scalings intended to equilibrate a symmetric indefinite matrix A and reduce its condition number (with respect to the two-norm).
The array s contains the scale factors, s(i)[i-1] = 1/sqrt(A(i,i)) . These factors are chosen so that the scaled matrix B with elements b(i,j)=s(i)*a(i,j)*s(j)b_{i,j}=s[i-1]*a_{i, j}*s[j-1] has ones on the diagonal.
This choice of s puts the condition number of B within a factor n of the smallest possible condition number over all possible diagonal scalings.
Input Parameters
uplo
CHARACTER*1 . Must be ‘U’ or ‘L’ .
Indicates whether the upper or lower triangular part of A is stored:
If uplo = 'U' , the array a stores the upper triangular part of the matrix A .
If uplo = 'L' , the array a stores the lower triangular part of the matrix A .
n
INTEGER . The order of the matrix A ; n≥ 0 .
a , work
REAL for ssyequb
DOUBLE PRECISION for dsyequb
COMPLEX for csyequb
DOUBLE COMPLEX for zsyequb .
Array a : lda by * .
Contains the n -by- n symmetric indefinite matrix A whose scaling factors are to be computed. Only the diagonal elements of A are referenced. The second dimension of a must be at least max(1,n) .
work(*) is a workspace array. The dimension of work is at least max(1,3*n) .
lda
INTEGER . The leading dimension of a ; lda≥ max(1, m) .
Output Parameters
s
REAL for single precision flavors
DOUBLE PRECISION for double precision flavors.
Array, size ( n ).
If info = 0 , the array s contains the scale factors for A .
scond
REAL for single precision flavors
DOUBLE PRECISION for double precision flavors.
If info = 0 , scond contains the ratio of the smallest s(i)s[i] to the largest s(i)s[i] . If scond≥ 0.1 , and amax is neither too large nor too small, it is not worth scaling by s .
amax
REAL for single precision flavors
DOUBLE PRECISION for double precision flavors.
Absolute value of the largest element of the matrix A . If amax is very close to SMLNUM or BIGNUM , the matrix should be scaled.
info
INTEGER .
If info = 0 , the execution is successful.
If info = -i , the i -th parameter had an illegal value.
If info = i , the i -th diagonal element of A is nonpositive.
Return Values
No return value, info is an Output Parameter.