HPL_rollT(3)

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 (3).