p?trcon
p?trcon
Estimates the reciprocal of the condition number of a triangular distributed matrix in either 1-norm or infinity-norm.
Syntax
void
pstrcon
(
char
*norm
,
char
*uplo
,
char
*diag
,
MKL_INT
*n
,
float
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
float
*rcond
,
float
*work
,
MKL_INT
*lwork
,
MKL_INT
*iwork
,
MKL_INT
*liwork
,
MKL_INT
*info
);
void
pdtrcon
(
char
*norm
,
char
*uplo
,
char
*diag
,
MKL_INT
*n
,
double
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
double
*rcond
,
double
*work
,
MKL_INT
*lwork
,
MKL_INT
*iwork
,
MKL_INT
*liwork
,
MKL_INT
*info
);
void
pctrcon
(
char
*norm
,
char
*uplo
,
char
*diag
,
MKL_INT
*n
,
MKL_Complex8
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
float
*rcond
,
MKL_Complex8
*work
,
MKL_INT
*lwork
,
float
*rwork
,
MKL_INT
*lrwork
,
MKL_INT
*info
);
void
pztrcon
(
char
*norm
,
char
*uplo
,
char
*diag
,
MKL_INT
*n
,
MKL_Complex16
*a
,
MKL_INT
*ia
,
MKL_INT
*ja
,
MKL_INT
*desca
,
double
*rcond
,
MKL_Complex16
*work
,
MKL_INT
*lwork
,
double
*rwork
,
MKL_INT
*lrwork
,
MKL_INT
*info
);
Include Files
- mkl_scalapack.h
Description
The
p?trcon
function
estimates the reciprocal of the condition number of a triangular distributed matrix sub(A
) = A
(ia
:ia
+n
-1, ja
:ja
+n
-1), in either the 1-norm or the infinity-norm.The norm of sub(
A
) is computed and an estimate is obtained for ||(sub(A
))-1
||, then 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'
- uplo
- (global) Must be'U'or'L'.If, sub(uplo='U'A) is upper triangular. If, sub(uplo='L'A) is lower triangular.
- diag
- (global) Must be'N'or'U'.If, sub(diag='N'A) is non-unit triangular. If, sub(diag='U'A) is unit triangular.
- 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 triangular distributed matrix sub(A).If, the leadinguplo='U'n-by-nupper triangular part of this distributed matrix contains the upper triangular matrix, and its strictly lower triangular part is not referenced.If, the leadinguplo='L'n-by-nlower triangular part of this distributed matrix contains the lower triangular matrix, and its strictly upper triangular part is not referenced.If, the diagonal elements of sub(diag='U'A) are also not referenced and are assumed to be 1.
- 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.
- 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))+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)))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≥LOCc(n+mod(ja-1,nb_a))
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) 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.