Name
HPL_plindx10 Compute the logarithmic maps for the spreading.
Synopsis
#include "hpl.h"
void
HPL_plindx10(
HPL_T_panel *
PANEL,
const int
K,
const int *
IPID,
int *
IPLEN,
int *
IPMAP,
int *
IPMAPM1
);
Description
HPL_plindx10
computes  three arrays  IPLEN,  IPMAP  and  IPMAPM1  that
contain the logarithmic mapping information for the spreading phase.
Arguments
PANEL   (local input/output)          HPL_T_panel *
        On entry,  PANEL  points to the data structure containing the
        panel information.
K       (global input)                const int
        On entry, K specifies the number of entries in IPID.  K is at
        least 2*N, and at most 4*N.
IPID    (global input)                const int *
        On entry,  IPID  is an array of length K. The first K entries
        of that array contain the src and final destination resulting
        from the application of the interchanges.
IPLEN   (global output)               int *
        On entry, IPLEN  is an array of dimension NPROW + 1. On exit,
        this array is such that  IPLEN[i]  is the number of rows of A
        in the processes  before process IMAP[i] after the sort, with
        the convention that IPLEN[nprow] is the total number of rows.
        In other words,  IPLEN[i+1] - IPLEN[i] is the local number of
        rows of  A  that should be moved for each process.  IPLEN  is
        such that the number of rows of the source process row can be
        computed as IPLEN[1] - IPLEN[0], and the remaining entries of
        this  array are sorted  so  that  the quantities IPLEN[i+1] -
        IPLEN[i] are logarithmically sorted.
IPMAP   (global output)               int *
        On entry, IPMAP is an array of dimension NPROW. On exit, this
        array contains  the logarithmic mapping of the processes.  In
        other words, IPMAP[myrow] is the corresponding sorted process
        coordinate.
IPMAPM1 (global output)               int *
        On entry, IPMAPM1  is an array of dimension NPROW.  On  exit,
        this  array  contains  the inverse of the logarithmic mapping
        contained  in  IPMAP:  IPMAPM1[ IPMAP[i] ] = i,  for all i in
        [0.. NPROW)
See Also
HPL_pdlaswp00N,
HPL_pdlaswp00T,
HPL_pdlaswp01N,
HPL_pdlaswp01T.