Scroll to navigation

PZLACGV(l) LAPACK auxiliary routine (version 1.5) PZLACGV(l)

NAME

PZLACGV - 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

N, X, IX, JX, DESCX, INCX )

INTEGER INCX, IX, JX, N INTEGER DESCX( * ) COMPLEX*16 X( * )

PURPOSE

PZLACGV 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 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 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

The length of the distributed vector sub( X ).
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.
The row index in the global array X indicating the first row of sub( X ).
The column index in the global array X indicating the first column of sub( X ).
The array descriptor for the distributed matrix X.
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.
12 May 1997 LAPACK version 1.5