Developer Reference for Intel® oneAPI Math Kernel Library for C
?hecon_3
Estimates the reciprocal of the condition number (in the 1-norm) of a complex Hermitian matrix A.
Syntax
lapack_intLAPACKE_checon_3 ( intmatrix_layout , charuplo , lapack_intn , constlapack_complex_float*A , lapack_intlda , constlapack_complex_float*e , constlapack_int*ipiv , floatanorm , float*rcond );
lapack_intLAPACKE_zhecon_3 ( intmatrix_layout , charuplo , lapack_intn , constlapack_complex_double*A , lapack_intlda , constlapack_complex_double*e , constlapack_int*ipiv , doubleanorm , double*rcond );
Description
?hecon_3 estimates the reciprocal of the condition number (in the 1-norm) of a complex Hermitian matrix A using the factorization computed by ?hetrf_rk : A = P*U*D*(U H )*(P T ) or A = P*L*D*(L H )*(P T ), where U (or L) is unit upper (or lower) triangular matrix, U H (or L H ) is the conjugate of U (or L), P is a permutation matrix, P T is the transpose of P, and D is Hermitian and block diagonal with 1-by-1 and 2-by-2 diagonal blocks. An estimate is obtained for norm(inv(A)), and the reciprocal of the condition number is computed as rcond = 1 / ( anorm * norm(inv(A))).
This routine uses BLAS3 solver ?hetrs_3 .
Input Parameters
- matrix_layout
-
Specifies whether matrix storage layout is row major ( LAPACK_ROW_MAJOR ) or column major ( LAPACK_COL_MAJOR ).
uplo
Specifies whether the details of the factorization are stored as an upper or lower triangular matrix: = 'U' : Upper triangular, form is A = P*U*D*(U H )*(P T ); = 'L' : Lower triangular, form is A = P*L*D*(L H )*(P T ).
n
The order of the matrix A. n ≥ 0.
- A
-
COMPLEX for checon_3 COMPLEX*16 for zhecon_3
Array of size max(1, lda * n ). Diagonal of the block diagonal matrix D and factor U or L as computed by ?hetrf_rk :
- lda
-
INTEGER
The leading dimension of the array A .
- e
-
COMPLEX for checon_3 COMPLEX*16 for zhecon_3
Array of size n . On entry, contains the superdiagonal (or subdiagonal) elements of the Hermitian block diagonal matrix D with 1-by-1 or 2-by-2 diagonal blocks. If uplo = 'U' , e(i) = D( i- 1, i ), i =2:N, and e(1) is not referenced. If uplo = 'L' , e( i ) = D( i +1, i ), i =1:N - 1, and e( n ) is not referenced.
- ipiv
-
INTEGER
Array of size n . Details of the interchanges and the block structure of D as determined by ?hetrf_rk .
- anorm
-
COMPLEX for checon_3 COMPLEX*16 for zhecon_3 The 1-norm of the original matrix A.
Output Parameters
- rcond
-
COMPLEX for checon_3 COMPLEX*16 for zhecon_3 The reciprocal of the condition number of the matrix A, computed as rcond = 1/( anorm * AINVNM ), where AINVNM is an estimate of the 1-norm of inv(A) computed in this routine.
- work
-
COMPLEX for checon_3 COMPLEX*16 for zhecon_3 Array, dimension (2* n ).
Return Values
This function returns a value info .
If info = 0, the execution is successful.
If info = -i , the ith argument had an illegal value.