Developer Reference for Intel® oneAPI Math Kernel Library for C
?sycon_3
Estimates the reciprocal of the condition number (in the 1-norm) of a real or complex symmetric matrix A using the factorization computed by ?sytrf_rk .
Syntax
lapack_intLAPACKE_ssycon_3 ( intmatrix_layout , charuplo , lapack_intn , constfloat*A , lapack_intlda , constfloat*e , constlapack_int*ipiv , floatanorm , float*rcond );
lapack_intLAPACKE_dsycon_3 ( intmatrix_layout , charuplo , lapack_intn , constdouble*A , lapack_intlda , constdouble*e , constlapack_int*ipiv , doubleanorm , double*rcond );
lapack_intLAPACKE_csycon_3 ( intmatrix_layout , charuplo , lapack_intn , constlapack_complex_float*A , lapack_intlda , constlapack_complex_float*e , constlapack_int*ipiv , floatanorm , float*rcond );
lapack_intLAPACKE_zsycon_3 ( intmatrix_layout , charuplo , lapack_intn , constlapack_complex_double*A , lapack_intlda , constlapack_complex_double*e , constlapack_int*ipiv , doubleanorm , double*rcond );
Description
?sycon_3 estimates the reciprocal of the condition number (in the 1-norm) of a real or complex symmetric matrix A using the factorization computed by ?sytrf_rk . A = P*U*D*(U T )*(P T ) or A = P*L*D*(L T )*(P T ), where U (or L) is unit upper (or lower) triangular matrix, U T (or L T ) is the transpose of U (or L), P is a permutation matrix, P T is the transpose of P, and D is symmetric 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 ?sytrs_3 .
Input Parameters
- matrix_layout
-
Specifies whether matrix storage layout is row major ( LAPACK_ROW_MAJOR ) or column major ( LAPACK_COL_MAJOR ).
- uplo
-
CHARACTER*1 Specifies whether the details of the factorization are stored as an upper or lower triangular matrix:
- n
-
INTEGER The order of the matrix A. n ≥ 0.
- A
-
REAL for ssycon_3 DOUBLE PRECISION for dsycon_3 COMPLEX for csycon_3 COMPLEX*16 for zsycon_3
Array of size max(1, lda * n ). Diagonal of the block diagonal matrix D and factors U or L as computed by ?sytrf_rk :
- lda
-
INTEGER
The leading dimension of the array A .
- e
-
REAL for ssycon_3 DOUBLE PRECISION for dsycon_3 COMPLEX for csycon_3 COMPLEX*16 for zsycon_3
Array of size n . On entry, contains the superdiagonal (or subdiagonal) elements of the symmetric 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 ?sytrf_rk .
- anorm
-
REAL for ssycon_3 DOUBLE PRECISION for dsycon_3 REAL for csycon_3 DOUBLE PRECISION for zsycon_3 The 1-norm of the original matrix A.
Output Parameters
- rcond
-
REAL for ssycon_3 DOUBLE PRECISION for dsycon_3 REAL for csycon_3 DOUBLE PRECISION for zsycon_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
-
REAL for ssycon_3 DOUBLE PRECISION for dsycon_3 COMPLEX for csycon_3 COMPLEX*16 for zsycon_3 Array, dimension (2* n )
- iwork
-
INTEGER Array, dimension ( 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.