# Name

HPL_dlaswp04T copy columns of U in rows of A and replace them with columns of W.

# Synopsis

`#include "hpl.h"`
`void` `HPL_dlaswp04T(` `const int` `M0`, `const int` `M1`, `const int` `N`, `double *` `U`, `const int` `LDU`, `double *` `A`, `const int` `LDA`, `const double *` `W0`, `const double *` `W`, `const int` `LDW`, `const int *` `LINDXA`, `const int *` `LINDXAU` `);`

# Description

HPL_dlaswp04T copies M0 columns of U into rows of A and replaces those columns of U with columns of W. In addition M1 - M0 columns of W are copied into U.

# Arguments

    M0      (local input)                 const int
            On entry, M0 specifies the number of columns of U that should
            be copied into A and replaced by columns of W.  M0 must be at
            least zero.

    M1      (local input)                 const int
            On entry, M1 specifies  the number of columnns of W that will
            be copied into U. M1 must be at least zero.

    N       (local input)                 const int
            On entry,  N  specifies the length of the columns of  U  that
            will be copied into rows of A. N must be at least zero.

    U       (local input/output)          double *
            On entry,  U  points  to an array of dimension (LDU,*).  This
            array contains the columns that are to be copied into rows of
            A.

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

    A       (local output)                double *
            On entry, A points to an array of dimension (LDA,N). On exit,
            the  rows of this array specified by  LINDXA  are replaced by
            columns of U indicated by LINDXAU.

    LDA     (local input)                 const int
            On entry, LDA specifies the leading dimension of the array A.
            LDA must be at least MAX(1,M0).

    W0      (local input)                 const double *
            On entry,  W0  is an array of size (M-1)*LDW+1, that contains
            the destination offset  in U where the columns of W should be
            copied.

    W       (local input)                 const double *
            On entry, W  is an array of size (LDW,M0+M1),  that  contains
            data to be copied into U.  For i in [M0..M0+M1),  the entries
            W(:,i) are copied into the column W0(i*LDW) of U.

    LDW     (local input)                 const int
            On entry, LDW specifies the leading dimension of the array W.
            LDW must be at least MAX(1,N+1).

    LINDXA  (local input)                 const int *
            On entry, LINDXA  is an array of dimension  M0 containing the
            local row indexes A into which columns of U are copied.

    LINDXAU (local input)                 const int *
            On entry, LINDXAU  is an array of dimension M0 that  contains
            the  local column indexes of  U  that should be copied into A
            and replaced by the columns of W.

# See Also

HPL_dlaswp00N, HPL_dlaswp10N, HPL_dlaswp01N, HPL_dlaswp01T, HPL_dlaswp02N, HPL_dlaswp03N, HPL_dlaswp03T, HPL_dlaswp04N, HPL_dlaswp04T, HPL_dlaswp05N, HPL_dlaswp05T, HPL_dlaswp06N, HPL_dlaswp06T.