# 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.