# Name

HPL_pdmatgen Parallel random matrix generator.

# Synopsis

`#include "hpl.h"`
`void` `HPL_pdmatgen(` `const HPL_T_grid *` `GRID`, `const int` `M`, `const int` `N`, `const int` `NB`, `double *` `A`, `const int` `LDA`, `const int` `ISEED` `);`

# Description

HPL_pdmatgen generates (or regenerates) a parallel random matrix A. The pseudo-random generator uses the linear congruential algorithm: X(n+1) = (a * X(n) + c) mod m as described in the Art of Computer Programming, Knuth 1973, Vol. 2.

# Arguments

    GRID    (local input)                 const HPL_T_grid *
            On entry,  GRID  points  to the data structure containing the
            process grid information.

    M       (global input)                const int
            On entry,  M  specifies  the number  of rows of the matrix A.
            M must be at least zero.

    N       (global input)                const int
            On entry,  N specifies the number of columns of the matrix A.
            N must be at least zero.

    NB      (global input)                const int
            On entry,  NB specifies the blocking factor used to partition
            and distribute the matrix A. NB must be larger than one.

    A       (local output)                double *
            On entry,  A  points  to an array of dimension (LDA,LocQ(N)).
            On exit, this array contains the coefficients of the randomly
            generated matrix.

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

    ISEED   (global input)                const int
            On entry, ISEED  specifies  the  seed  number to generate the
            matrix A. ISEED must be at least zero.

# See Also

HPL_ladd, HPL_lmul, HPL_setran, HPL_xjumpm, HPL_jumpit, HPL_drand.