p?pocon
p?pocon
Estimates the reciprocal of the condition number (in the 1 - norm) of a symmetric / Hermitian positive-definite distributed matrix.
Syntax
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
);
Include Files
- mkl_scalapack.h
Description
The computed by
p?pocon
function
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
) = U
H
*U
or sub(A
) = L*L
H
p?potrf
.An estimate is obtained for ||(sub(
A
))-1
||, and the reciprocal of the condition number is computed as

Input Parameters
- uplo
- (global) Must be'U'or'L'.Specifies whether the factor stored in sub(A) is upper or lower triangular.If, sub(uplo='U'A) stores the upper triangular factorUof the Cholesky factorization sub(A) =UH*U.If, sub(uplo='L'A) stores the lower triangular factorLof the Cholesky factorization sub(A) =L*L.H
- n
- (global) The order of the distributed matrix sub(A)(.n≥0)
- a
- (local)Pointer into the local memory to an array of size.lld_a*LOCc(ja+n-1)The arrayacontains the local pieces of the factorsLorUfrom the Cholesky factorization sub(A) =UH*U, or sub(A) =L*L, as computed byHp?potrf.
- ia,ja
- (global) The row and column indices in the global matrixAindicating the first row and the first column of the matrix sub(A), respectively.
- desca
- (global and local) array of sizedlen_. The array descriptor for the distributed matrixA.
- anorm
- (global)The 1-norm of the symmetric/Hermitian distributed matrix sub(A).
- work
- (local)The arrayworkof sizelworkis a workspace array.
- lwork
- (local or global) The size of the arraywork.For real flavors:lworkmust be at leastlwork≥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:lworkmust be at leastlwork≥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))))Iflwork= -1, thenlworkis a global input and a workspace query is assumed. The routine only calculates the minimum and optimal size for all work arrays. Each value is returned in the first entry of the corresponding work array, and no error message is issued bypxerbla.iceil(is the ceiling ofx,y), andx/ymod(is the integer remainder ofx,y).x/y
- iwork
- (local) Workspace array of sizeliwork. Used in real flavors only.
- liwork
- (local or global) The size of the arrayiwork; used in real flavors only. Must be at least.liwork≥LOCr(n+mod(ia-1,mb_a))Ifliwork= -1, thenliworkis a global input and a workspace query is assumed. The routine only calculates the minimum and optimal size for all work arrays. Each value is returned in the first entry of the corresponding work array, and no error message is issued bypxerbla.
- rwork
- (local)Workspace array of sizelrwork. Used in complex flavors only.
- lrwork
- (local or global) The size of the arrayrwork; used in complex flavors only. Must be at least.lrwork≥2*LOCc(n+mod(ja-1,nb_a))Iflrwork= -1, thenlrworkis a global input and a workspace query is assumed. The routine only calculates the minimum and optimal size for all work arrays. Each value is returned in the first entry of the corresponding work array, and no error message is issued bypxerbla.
Output Parameters
- rcond
- (global)The reciprocal of the condition number of the distributed matrix sub(A).
- work[0]
- On exit,contains the minimum value ofwork[0]lworkrequired for optimum performance.
- iwork[0]
- On exit,contains the minimum value ofiwork[0]liworkrequired for optimum performance (for real flavors).
- rwork[0]
- On exit,contains the minimum value ofrwork[0]lrworkrequired for optimum performance (for complex flavors).
- info
- (global) Ifinfo=0, the execution is successful.info< 0:If thei-th argument is an array and thej-th entry, indexedhad an illegal value, thenj- 1,info= -(i*100+j); if thei-th argument is a scalar and had an illegal value, theninfo=-i.