p?gecon
p?gecon
Estimates the reciprocal of the condition number of a general distributed matrix in either the 1-norm or the infinity-norm.
Syntax
void
psgecon
(
char
*norm
,
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
pdgecon
(
char
*norm
,
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
pcgecon
(
char
*norm
,
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
pzgecon
(
char
*norm
,
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
p?gecon
function
estimates the reciprocal of the condition number of a general distributed real/complex matrix sub(A
) = A
(ia
:ia
+n
-1, ja
:ja
+n
-1) in either the 1-norm or infinity-norm, using the LU
factorization computed by p?getrf
.An estimate is obtained for ||(sub(
A
))-1
||, and the reciprocal of the condition number is computed as

Input Parameters
- norm
- (global) Must be'1'or'O'or'I'.Specifies whether the 1-norm condition number or the infinity-norm condition number is required.Ifornorm='1''O', then the 1-norm is used;If, then the infinity-norm is used.norm='I'
- 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 factorsLandUfrom the factorization sub(A) =P*L*U; the unit diagonal elements ofLare not stored.
- 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)Ifornorm='1''O', the 1-norm of the original distributed matrix sub(A);If, the infinity-norm of the original distributed matrix sub(norm='I'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*max(1, iceil(NPROW-1,NPCOL)).LOCc(n+mod(ja-1,nb_a)) +nb_a*max(1, iceil(NPCOL-1,NPROW))))For complex flavors:lworkmust be at leastlwork≥2*LOCr(n+mod(ia-1,mb_a))+max(2, max(,nb_a*iceil(NPROW-1,NPCOL).LOCc(n+mod(ja-1,nb_a))+nb_a*iceil(NPCOL-1,NPROW)))LOCrandLOCcvalues can be computed using the ScaLAPACK tool functionnumroc;NPROWandNPCOLcan be determined by calling thefunctionblacs_gridinfo.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))
- 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≥max(1, 2*LOCc(n+mod(ja-1,nb_a)))
Output Parameters
- rcond
- (global)The reciprocal of the condition number of the distributed matrix sub(A). See Description.
- 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) If, the execution is successful.info=0info< 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.