PCLACON(3) ScaLAPACK routine of NEC Numeric Library Collection PCLACON(3)
NAME
PCLACON - estimate the 1-norm of a square, complex distributed matrix A
SYNOPSIS
SUBROUTINE PCLACON( N, V, IV, JV, DESCV, X, IX, JX, DESCX, EST, KASE )
INTEGER IV, IX, JV, JX, KASE, N
REAL EST
INTEGER DESCV( * ), DESCX( * )
COMPLEX V( * ), X( * )
PURPOSE
PCLACON estimates the 1-norm of a square, complex distributed matrix A.
Reverse communication is used for evaluating matrix-vector products. X
and V are aligned with the distributed matrix A, this information is
implicitly contained within IV, IX, DESCV, and DESCX.
Notes
=====
Each global data object is described by an associated description vec-
tor. This vector stores the information required to establish the map-
ping between an object element and its corresponding process and memory
location.
Let A be a generic term for any 2D block cyclicly distributed array.
Such a global array has an associated description vector DESCA. In the
following comments, the character _ should be read as "of the global
array".
NOTATION STORED IN EXPLANATION
--------------- -------------- --------------------------------------
DTYPE_A(global) DESCA( DTYPE_ )The descriptor type. In this case,
DTYPE_A = 1.
CTXT_A (global) DESCA( CTXT_ ) The BLACS context handle, indicating
the BLACS process grid A is distribu-
ted over. The context itself is glo-
bal, but the handle (the integer
value) may vary.
M_A (global) DESCA( M_ ) The number of rows in the global
array A.
N_A (global) DESCA( N_ ) The number of columns in the global
array A.
MB_A (global) DESCA( MB_ ) The blocking factor used to distribute
the rows of the array.
NB_A (global) DESCA( NB_ ) The blocking factor used to distribute
the columns of the array.
RSRC_A (global) DESCA( RSRC_ ) The process row over which the first
row of the array A is distributed.
CSRC_A (global) DESCA( CSRC_ ) The process column over which the
first column of the array A is
distributed.
LLD_A (local) DESCA( LLD_ ) The leading dimension of the local
array. LLD_A >= MAX(1,LOCr(M_A)).
Let K be the number of rows or columns of a distributed matrix, and
assume that its process grid has dimension p x q.
LOCr( K ) denotes the number of elements of K that a process would
receive if K were distributed over the p processes of its process col-
umn.
Similarly, LOCc( K ) denotes the number of elements of K that a process
would receive if K were distributed over the q processes of its process
row.
The values of LOCr() and LOCc() may be determined via a call to the
ScaLAPACK tool function, NUMROC:
LOCr( M ) = NUMROC( M, MB_A, MYROW, RSRC_A, NPROW ),
LOCc( N ) = NUMROC( N, NB_A, MYCOL, CSRC_A, NPCOL ). An upper
bound for these quantities may be computed by:
LOCr( M ) <= ceil( ceil(M/MB_A)/NPROW )*MB_A
LOCc( N ) <= ceil( ceil(N/NB_A)/NPCOL )*NB_A
ARGUMENTS
N (global input) INTEGER
The length of the distributed vectors V and X. N >= 0.
V (local workspace) COMPLEX pointer into the local
memory to an array of dimension LOCr(N+MOD(IV-1,MB_V)). On the
final return, V = A*W, where EST = norm(V)/norm(W) (W is not
returned).
IV (global input) INTEGER
The row index in the global array V indicating the first row of
sub( V ).
JV (global input) INTEGER
The column index in the global array V indicating the first
column of sub( V ).
DESCV (global and local input) INTEGER array of dimension DLEN_.
The array descriptor for the distributed matrix V.
X (local input/local output) COMPLEX pointer into the
local memory to an array of dimension LOCr(N+MOD(IX-1,MB_X)).
On an intermediate return, X should be overwritten by A * X,
if KASE=1, A' * X, if KASE=2, where A' is the conjugate trans-
pose of A, and PCLACON must be re-called with all the other
parameters unchanged.
IX (global input) INTEGER
The row index in the global array X indicating the first row of
sub( X ).
JX (global input) INTEGER
The column index in the global array X indicating the first
column of sub( X ).
DESCX (global and local input) INTEGER array of dimension DLEN_.
The array descriptor for the distributed matrix X.
EST (global output) REAL
An estimate (a lower bound) for norm(A).
KASE (local input/local output) INTEGER
On the initial call to PCLACON, KASE should be 0. On an inter-
mediate return, KASE will be 1 or 2, indicating whether X
should be overwritten by A * X or A' * X. On the final return
from PCLACON, KASE will again be 0.
FURTHER DETAILS
The serial version CLACON has been contributed by Nick Higham, Univer-
sity of Manchester. It was originally named SONEST, dated March 16,
1988.
Reference: N.J. Higham, "FORTRAN codes for estimating the one-norm of a
real or complex matrix, with applications to condition estimation", ACM
Trans. Math. Soft., vol. 14, no. 4, pp. 381-396, December 1988.
ScaLAPACK routine 31 October 2017 PCLACON(3)