next up previous contents index
Next: References Up: Specifications of Routines Previous: Specifications of Routines


  1. The specifications that follow give the calling sequence, purpose, and descriptions of the arguments of each ScaLAPACK driver and computational routine (but not of auxiliary routines).
  2. Specifications of pairs of real and complex routines have been merged (for example PSGETRF/PCGETRF).
  3. Specifications are given only for single-precision routines. To adapt them for the double precision version of the software, simply interpret REAL as DOUBLE PRECISION, COMPLEX as COMPLEX*16 (or DOUBLE COMPLEX), and the initial letters PS- and PC- of ScaLAPACK routine names as PD- and PZ-.
  4. Specifications are arranged in alphabetical order of the real routine name.
  5. The text of the specifications has been derived from the leading comments in the source-text of the routines. It makes only limited use of mathematical typesetting facilities. To eliminate redundancy, tex2html_wrap_inline12724 has been used throughout the specifications. Thus, the reader should note that tex2html_wrap_inline12724 is equivalent to tex2html_wrap_inline12722 in the real case.
  6. If there is a discrepancy between the specifications listed in this section and the actual source code, the source code should be regarded as the most up to date.

Included in the leading comments of each subroutine (immediately preceding the Argument section) is a brief note describing the array descriptor and some commonly used expressions in calculating workspace. For brevity, we have listed this information below and not included it in the specifications of the routines.

*  Notes
*  =====
*  Each global data object is described by an associated description
*  vector.  This vector stores the information required to establish
*  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".
*  --------------- -------------- --------------------------------------
*  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

=0.15in =-.4in


=0in =0in


Susan Blackford
Tue May 13 09:21:01 EDT 1997