# Name

HPL_rollT Roll U and forward the column panel.

# Synopsis

`#include "hpl.h"`
`void` `HPL_rollT(` `HPL_T_panel *` `PBCST`, `int *` `IFLAG`, `HPL_T_panel *` `PANEL`, `const int` `N`, `double *` `U`, `const int` `LDU`, `const int *` `IPLEN`, `const int *` `IPMAP`, `const int *` `IPMAPM1` `);`

# Description

HPL_rollT rolls the local arrays containing the local pieces of U, so that on exit to this function U is replicated in every process row. In addition, this function probe for the presence of the column panel and forwards it when available.

# Arguments

    PBCST   (local input/output)          HPL_T_panel *
            On entry,  PBCST  points to the data structure containing the
            panel (to be broadcast) information.

    IFLAG   (local input/output)          int *
            On entry, IFLAG  indicates  whether or not  the broadcast has
            already been completed.  If not,  probing will occur, and the
            outcome will be contained in IFLAG on exit.

    PANEL   (local input/output)          HPL_T_panel *
            On entry,  PANEL  points to the data structure containing the
            panel (to be rolled) information.

    N       (local input)                 const int
            On entry, N specifies the local number of rows of  U.  N must
            be at least zero.

    U       (local input/output)          double *
            On entry,  U  is an array of dimension (LDU,*) containing the
            local pieces of U in each process row.

    LDU     (local input)                 const int
            On entry, LDU specifies the local leading dimension of U. LDU
            should be at least  MAX(1,N).

    IPLEN   (global input)                const int *
            On entry, IPLEN is an array of dimension NPROW+1.  This array
            is such that IPLEN[i+1] - IPLEN[i] is the number of rows of U
            in each process row.

    IPMAP   (global input)                const int *
            On entry, IMAP  is an array of dimension  NPROW.  This  array
            contains  the  logarithmic mapping of the processes. In other
            words,  IMAP[myrow]  is the absolute coordinate of the sorted
            process.

    IPMAPM1 (global input)                const int *
            On entry,  IMAPM1  is an array of dimension NPROW. This array
            contains  the inverse of the logarithmic mapping contained in
            IMAP: For i in [0.. NPROW) IMAPM1[IMAP[i]] = i.

# See Also

HPL_pdlaswp01T.