# Name

HPL_pdtest Perform one test.

# Synopsis

`#include "hpl.h"`
`void` `HPL_pdtest(` `HPL_T_test *` `TEST`, `HPL_T_grid *` `GRID`, `HPL_T_palg *` `ALGO`, `const int` `N`, `const int` `NB` `);`

# Description

HPL_pdtest performs one test given a set of parameters such as the process grid, the problem size, the distribution blocking factor ... This function generates the data, calls and times the linear system solver, checks the accuracy of the obtained vector solution and writes this information to the file pointed to by TEST->outfp.

# Arguments

    TEST    (global input)                HPL_T_test *
            On entry,  TEST  points  to a testing data structure:  outfp
            specifies the output file where the results will be printed.
            It is only defined and used by the process  0  of the  grid.
            thrsh  specifies  the  threshhold value  for the test ratio.
            Concretely, a test is declared "PASSED"  if and only if  the
            following inequality is satisfied:
            ||Ax-b||_oo / ( epsil *
                            ( || x ||_oo * || A ||_oo + || b ||_oo ) *
                             N )  < thrsh.
            epsil  is the  relative machine precision of the distributed
            computer. Finally the test counters, kfail, kpass, kskip and
            ktest are updated as follows:  if the test passes,  kpass is
            incremented by one;  if the test fails, kfail is incremented
            by one; if the test is skipped, kskip is incremented by one.
            ktest is left unchanged.

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

    ALGO    (global input)                HPL_T_palg *
            On entry,  ALGO  points to  the data structure containing the
            algorithmic parameters to be used for this test.

    N       (global input)                const int
            On entry,  N specifies the order of the coefficient 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.

# See Also

HPL_pddriver, HPL_pdinfo.