# 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 all
of the following inequalities are satisfied:
||Ax-b||_oo / ( epsil * ||A||_1 * N ) < thrsh,
||Ax-b||_oo / ( epsil * ||A||_1 * ||x||_1 ) < thrsh,
||Ax-b||_oo / ( epsil * ||A||_oo * ||x||_oo ) < 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.