pclacgv(3)
NAME
PCLACGV - conjugate a complex vector of length N, sub( X ), where sub(
X ) denotes X(IX,JX:JX+N-1) if INCX = DESCX( M_ ) and X(IX:IX+N-1,JX)
if INCX = 1, and Notes ===== Each global data object is described by
an associated description vector
SYNOPSIS
SUBROUTINE PCLACGV( N, X, IX, JX, DESCX, INCX )
INTEGER INCX, IX, JX, N
INTEGER DESCX( * )
COMPLEX X( * )
PURPOSE
PCLACGV conjugates a complex vector of length N, sub( X ), where sub( X
) denotes X(IX,JX:JX+N-1) if INCX = DESCX( M_ ) and X(IX:IX+N-1,JX) if
INCX = 1, and the mapping 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 distributed over. The context itself is global, 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 column.
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 - Because vectors may be viewed as a subclass of matrices, a distributed vector is considered to be a distributed matrix.
ARGUMENTS
- N (global input) INTEGER
- The length of the distributed vector sub( X ).
- X (local input/local output) COMPLEX pointer into the
- local memory to an array of dimension (LLD_X,*). On entry the vector to be conjugated x( i ) = X(IX+(JX-1)*M_X +(i-1)*INCX ), 1 <= i <= N. On exit the conjugated vector.
- 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.
- INCX (global input) INTEGER
- The global increment for the elements of X. Only two values of INCX are supported in this version, namely 1 and M_X. INCX must not be zero.