Developer Reference for Intel® oneAPI Math Kernel Library for C
A newer version of this document is available. Customers should click here to go to the newest version.
?heequb
Computes row and column scaling factors intended to equilibrate a Hermitian indefinite matrix and reduce its condition number.
Syntax
lapack_int LAPACKE_cheequb( int matrix_layout, char uplo, lapack_int n, const lapack_complex_float* a, lapack_int lda, float* s, float* scond, float* amax );
lapack_int LAPACKE_zheequb( int matrix_layout, char uplo, lapack_int n, const lapack_complex_double* a, lapack_int lda, double* s, double* scond, double* amax );
Include Files
- mkl.h
 
Description
The routine computes row and column scalings intended to equilibrate a Hermitian indefinite matrix A and reduce its condition number (with respect to the two-norm).
The array s contains the scale factors, s[i-1] = 1/sqrt(ai,i). These factors are chosen so that the scaled matrix B with elements bi,j=s[i-1]*ai,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
matrix_layout  |  
      Specifies whether matrix storage layout is row major (LAPACK_ROW_MAJOR) or column major (LAPACK_COL_MAJOR).  |  
     
uplo  |  
      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  |  
      The order of the matrix A; n≥ 0.  |  
     
a  |  
      Array a: size max(1, lda*n) . Contains the n-by-n symmetric indefinite matrix A whose scaling factors are to be computed. Only the diagonal elements of A are referenced.  |  
     
lda  |  
      The leading dimension of a; lda≥ max(1, m).  |  
     
Output Parameters
s  |  
      Array, size (n). If info = 0, the array s contains the scale factors for A.  |  
     
scond  |  
      If info = 0, scond contains the ratio of the smallest s[i] to the largest s[i]. If scond≥ 0.1, and amax is neither too large nor too small, it is not worth scaling by s.  |  
     
amax  |  
      Absolute value of the largest element of the matrix A. If amax is very close to SMLNUM or BIGNUM, the matrix should be scaled.  |  
     
Return Values
This function returns a value info.
If info = 0, the execution is successful.
If info = -i, parameter i had an illegal value.
If info = i, the i-th diagonal element of A is nonpositive.