HPL_indxg2lp Map a local index into a global one.


#include "hpl.h"

void HPL_indxg2lp( int * IL, int * PROC, const int IG, const int INB, const int NB, const int SRCPROC, const int NPROCS );


HPL_indxg2lp computes the local index of a matrix entry pointed to by the global index IG as well as the process coordinate which posseses this entry. The local returned index is the same in all processes.


IL      (output)                      int *
        On exit, IL specifies the local index corresponding to IG. IL
        is at least zero.
PROC    (output)                      int *
        On exit,  PROC  is the  coordinate of the process  owning the
        entry specified by the global index IG. PROC is at least zero
        and less than NPROCS.
IG      (input)                       const int
        On entry, IG specifies the global index of the matrix  entry.
        IG must be at least zero.
INB     (input)                       const int
        On entry,  INB  specifies  the size of the first block of the
        global matrix. INB must be at least one.
NB      (input)                       const int
        On entry,  NB specifies the blocking factor used to partition
        and distribute the matrix A. NB must be larger than one.
SRCPROC (input)                       const int
        On entry, if SRCPROC = -1, the data  is not  distributed  but
        replicated,  in  which  case  this  routine returns IG in all
        processes. Otherwise, the value of SRCPROC is ignored.
NPROCS  (input)                       const int
        On entry,  NPROCS  specifies the total number of process rows
        or columns over which the matrix is distributed.  NPROCS must
        be at least one.

See Also

HPL_indxg2l, HPL_indxg2p, HPL_indxl2g, HPL_numroc, HPL_numrocI.