Intel® Math Kernel Library 2018 Developer Reference - C
Estimates the reciprocal of the condition number (in the 1 - norm) of a symmetric / Hermitian positive-definite distributed matrix.
void pspocon (char *uplo , MKL_INT *n , float *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , float *anorm , float *rcond , float *work , MKL_INT *lwork , MKL_INT *iwork , MKL_INT *liwork , MKL_INT *info );
void pdpocon (char *uplo , MKL_INT *n , double *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , double *anorm , double *rcond , double *work , MKL_INT *lwork , MKL_INT *iwork , MKL_INT *liwork , MKL_INT *info );
void pcpocon (char *uplo , MKL_INT *n , MKL_Complex8 *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , float *anorm , float *rcond , MKL_Complex8 *work , MKL_INT *lwork , float *rwork , MKL_INT *lrwork , MKL_INT *info );
void pzpocon (char *uplo , MKL_INT *n , MKL_Complex16 *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , double *anorm , double *rcond , MKL_Complex16 *work , MKL_INT *lwork , double *rwork , MKL_INT *lrwork , MKL_INT *info );
The p?poconfunction estimates the reciprocal of the condition number (in the 1 - norm) of a real symmetric or complex Hermitian positive definite distributed matrix sub(A) = A(ia:ia+n-1, ja:ja+n-1), using the Cholesky factorization sub(A) = UH*U or sub(A) = L*LH computed by p?potrf.
An estimate is obtained for ||(sub(A))-1||, and the reciprocal of the condition number is computed as
(global) Must be 'U' or 'L'.
Specifies whether the factor stored in sub(A) is upper or lower triangular.
If uplo = 'U', sub(A) stores the upper triangular factor U of the Cholesky factorization sub(A) = UH*U.
If uplo = 'L', sub(A) stores the lower triangular factor L of the Cholesky factorization sub(A) = L*LH.
(global) The order of the distributed matrix sub(A) (n≥0).
(local)
Pointer into the local memory to an array of size lld_a*LOCc(ja+n-1).
The array a contains the local pieces of the factors L or U from the Cholesky factorization sub(A) = UH*U, or sub(A) = L*LH, as computed by p?potrf.
(global) The row and column indices in the global matrix A indicating the first row and the first column of the matrix sub(A), respectively.
(global and local) array of size dlen_. The array descriptor for the distributed matrix A.
(global)
The 1-norm of the symmetric/Hermitian distributed matrix sub(A).
(local)
The array work of size lwork is a workspace array.
(local or global) The size of the array work.
For real flavors:
lwork must be at least
lwork≥ 2*LOCr(n+mod(ia-1,mb_a))+2*LOCc(n+mod(ja-1,nb_a))+max(2, max(nb_a*iceil(NPROW-1, NPCOL), LOCc(n+mod(ja-1,nb_a))+nb_a*iceil(NPCOL-1, NPROW))).
For complex flavors:
lwork must be at least
lwork≥ 2*LOCr(n+mod(ia-1,mb_a))+max(2, max(nb_a*max(1,iceil(NPROW-1, NPCOL)), LOCc(n+mod(ja-1,nb_a))+nb_a*max(1,iceil(NPCOL-1, NPROW)))).
iceil(x,y) is the ceiling of x/y, and mod(x,y) is the integer remainder of x/y.
(local) Workspace array of size liwork. Used in real flavors only.
(local or global) The size of the array iwork; used in real flavors only. Must be at least liwork≥LOCr(n+mod(ia-1,mb_a)).
(local)
Workspace array of size lrwork. Used in complex flavors only.
(local or global) The size of the array rwork; used in complex flavors only. Must be at least lrwork≥ 2*LOCc(n+mod(ja-1,nb_a)).
(global)
The reciprocal of the condition number of the distributed matrix sub(A).
On exit, work[0] contains the minimum value of lwork required for optimum performance.
On exit, iwork[0] contains the minimum value of liwork required for optimum performance (for real flavors).
On exit, rwork[0] contains the minimum value of lrwork required for optimum performance (for complex flavors).
(global) If info=0, the execution is successful.
info < 0:
If the i-th argument is an array and the j-th entry, indexed j - 1, had an illegal value, then info = -(i*100+j); if the i-th argument is a scalar and had an illegal value, then info = -i.