Name

HPL_infog2l global to local index translation.

Synopsis

#include "hpl.h"

void HPL_infog2l( int I, int J, const int IMB, const int MB, const int INB, const int NB, const int RSRC, const int CSRC, const int MYROW, const int MYCOL, const int NPROW, const int NPCOL, int * II, int * JJ, int * PROW, int * PCOL );

Description

HPL_infog2l computes the starting local index II, JJ corresponding to the submatrix starting globally at the entry pointed by I, J. This routine returns the coordinates in the grid of the process owning the matrix entry of global indexes I, J, namely PROW and PCOL.

Arguments

I       (global input)                int
        On entry,  I  specifies  the  global  row index of the matrix
        entry. I must be at least zero.
J       (global input)                int
        On entry,  J  specifies the global column index of the matrix
        entry. J must be at least zero.
IMB     (global input)                const int
        On entry,  IMB  specifies  the size of the first row block of
        the global matrix. IMB must be at least one.
MB      (global input)                const int
        On entry,  MB specifies the blocking factor used to partition
        and  distribute the rows of the matrix A.  MB  must be larger
        than one.
INB     (global input)                const int
        On entry, INB specifies the size of the first column block of
        the global matrix. INB must be at least one.
NB      (global input)                const int
        On entry,  NB specifies the blocking factor used to partition
        and distribute the columns of the matrix A. NB must be larger
        than one.
RSRC    (global input)                const int
        On entry,  RSRC  specifies  the row coordinate of the process
        that possesses the row  I.  RSRC  must  be at least zero  and
        strictly less than NPROW.
CSRC    (global input)                const int
        On entry, CSRC specifies the column coordinate of the process
        that possesses the column J. CSRC  must be at least zero  and
        strictly less than NPCOL.
MYROW   (local input)                 const int
        On entry, MYROW  specifies my  row process  coordinate in the
        grid. MYROW is greater than or equal  to zero  and  less than
        NPROW.
MYCOL   (local input)                 const int
        On entry, MYCOL specifies my column process coordinate in the
        grid. MYCOL is greater than or equal  to zero  and  less than
        NPCOL.
NPROW   (global input)                const int
        On entry,  NPROW  specifies the number of process rows in the
        grid. NPROW is at least one.
NPCOL   (global input)                const int
        On entry,  NPCOL  specifies  the number of process columns in
        the grid. NPCOL is at least one.
II      (local output)                int *
        On exit, II  specifies the  local  starting  row index of the
        submatrix. On exit, II is at least 0.
JJ      (local output)                int *
        On exit, JJ  specifies the local starting column index of the
        submatrix. On exit, JJ is at least 0.
PROW    (global output)               int *
        On exit, PROW is the row coordinate of the process owning the
        entry specified by the global index I.  PROW is at least zero
        and less than NPROW.
PCOL    (global output)               int *
        On exit, PCOL  is the column coordinate of the process owning
        the entry specified by the global index J.  PCOL  is at least
        zero and less than NPCOL.

See Also

HPL_indxg2l, HPL_indxg2p, HPL_indxl2g, HPL_numroc, HPL_numrocI.