# 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.