Contents

# p?trcon

Estimates the reciprocal of the condition number of a triangular distributed matrix in either 1-norm or infinity-norm.

## Syntax

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.
If
norm
=
'1'
or
'O'
, then the 1-norm is used;
If
norm
=
'I'
, then the infinity-norm is used.
uplo
(global) Must be
'U'
or
'L'
.
If
uplo
=
'U'
, sub(
A
) is upper triangular. If
uplo
=
'L'
, sub(
A
) is lower triangular.
diag
(global) Must be
'N'
or
'U'
.
If
diag
=
'N'
, sub(
A
) is non-unit triangular. If
diag
=
'U'
, sub(
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 array
a
contains the local pieces of the triangular distributed matrix sub(
A
).
If
uplo
=
'U'
n
-by-
n
upper triangular part of this distributed matrix contains the upper triangular matrix, and its strictly lower triangular part is not referenced.
If
uplo
=
'L'
n
-by-
n
lower triangular part of this distributed matrix contains the lower triangular matrix, and its strictly upper triangular part is not referenced.
If
diag
=
'U'
, the diagonal elements of sub(
A
) are also not referenced and are assumed to be 1.
ia
,
ja
(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.
desca
(global and local) array of size
dlen_
. The array descriptor for the distributed matrix
A
.
work
(local)
The array
work
of size
lwork
is a workspace array.
lwork
(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
))+
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:
lwork
must be at least
lwork
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(
x
,
y
)
is the ceiling of
x
/
y
, and
mod(
x
,
y
)
is the integer remainder of
x
/
y
.
iwork
(local) Workspace array of size
liwork
. Used in real flavors only.
liwork
(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
))
.
rwork
(local)
Workspace array of size
lrwork
. Used in complex flavors only.
lrwork
(local or global) The size of the array
rwork
; 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,
work
[0]
contains the minimum value of
lwork
required for optimum performance.
iwork
[0]
On exit,
iwork
[0]
contains the minimum value of
liwork
required for optimum performance (for real flavors).
rwork
[0]
On exit,
rwork
[0]
contains the minimum value of
lrwork
required for optimum performance (for complex flavors).
info
(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,
info
= -(
i
*100+
j
); if the
i-
th argument is a scalar and had an illegal value, then
info
=
-i
.

#### Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.