STARS-H
Software for Testing Accuracy, Reliability and Scalability of Hierarchical computations
|
Synthetic random TLR matrix routines. More...
Data Structures | |
struct | starsh_randtlr |
Structure for synthetic TLR matrices. More... | |
Typedefs | |
typedef struct starsh_randtlr | STARSH_randtlr |
Structure for synthetic TLR matrices. | |
Enumerations | |
enum | STARSH_RANDTLR_KERNEL { STARSH_RANDTLR_KERNEL1 = 1 } |
List of built-in kernels for starsh_randtlr_get_kernel(). More... | |
enum | STARSH_RANDTLR_PARAM { STARSH_RANDTLR_NB = 1, STARSH_RANDTLR_DECAY = 2, STARSH_RANDTLR_DIAG = 3 } |
List of parameters for starsh_application(). More... | |
Functions | |
void | starsh_randtlr_block_kernel (int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld) |
The only kernel for STARSH_randtlr object. More... | |
int | starsh_randtlr_generate (STARSH_randtlr **data, STARSH_int count, STARSH_int block_size, double decay, double diag) |
Generate STARSH_randtlr object for random TLR matrix. More... | |
int | starsh_randtlr_generate_va (STARSH_randtlr **data, STARSH_int count, va_list args) |
Generate STARSH_randtlr object with incomplete set of parameters. More... | |
int | starsh_randtlr_generate_el (STARSH_randtlr **data, STARSH_int count,...) |
Generate STARSH_randtlr object with incomplete set of parameters. More... | |
int | starsh_randtlr_get_kernel (STARSH_kernel **kernel, STARSH_randtlr *data, enum STARSH_RANDTLR_KERNEL type) |
Get kernel for spatial statistics problem. More... | |
void | starsh_randtlr_free (STARSH_randtlr *data) |
Free memory of STARSH_randtlr object. More... | |
Synthetic random TLR matrix routines.
STARSH_randtlr is about generation of TLR matrix in a special form. Each tile is generated as a multiplication of 3 matrices: \( U_i \), \( S \) and \( U_j \), where \( i \) and \( j \) are row and column indexes of some orthogonal matrix \( U \) and \( S \) is a diagonal matrix.
List of built-in kernels for starsh_randtlr_get_kernel().
There is only one kernel right now, this structure is to support future methods to generate synthetic matrices.
Enumerator | |
---|---|
STARSH_RANDTLR_KERNEL1 | The only kernel. |
enum STARSH_RANDTLR_PARAM |
List of parameters for starsh_application().
In the table below each constant correspond to a given argument and type for starsh_randtlr_generate(). These constants are used to generate problem with incomplete set of parameters via starsh_application(), starsh_randtlr_generate_va() or starsh_randtlr_generate_el().
Enumerator | |
---|---|
STARSH_RANDTLR_NB | Size of tiles. |
STARSH_RANDTLR_DECAY | Decay of singular values, first singular value is 1.0. |
STARSH_RANDTLR_DIAG | Value to add to diagonal elements. |
void starsh_randtlr_block_kernel | ( | int | nrows, |
int | ncols, | ||
STARSH_int * | irow, | ||
STARSH_int * | icol, | ||
void * | row_data, | ||
void * | col_data, | ||
void * | result, | ||
int | ld | ||
) |
The only kernel for STARSH_randtlr object.
[in] | nrows | Number of rows of \( A \). |
[in] | ncols | Number of columns of \( A \). |
[in] | irow | Array of row indexes. |
[in] | icol | Array of column indexes. |
[in] | row_data | Pointer to physical data (STARSH_randtlr object). |
[in] | col_data | Pointer to physical data (STARSH_randtlr object). |
[out] | result | Pointer to memory of \( A \). |
[in] | ld | Leading dimension of result . |
void starsh_randtlr_free | ( | STARSH_randtlr * | data | ) |
Free memory of STARSH_randtlr object.
int starsh_randtlr_generate | ( | STARSH_randtlr ** | data, |
STARSH_int | count, | ||
STARSH_int | block_size, | ||
double | decay, | ||
double | diag | ||
) |
Generate STARSH_randtlr object for random TLR matrix.
[out] | data | Address of pointer to STARSH_randtlr object. |
[in] | count | Size of matrix. |
[in] | block_size | Size of each tile. |
[in] | decay | Decay of singular values, first value is 1.0. |
[in] | diag | Value to add to each diagonal element. |
int starsh_randtlr_generate_el | ( | STARSH_randtlr ** | data, |
STARSH_int | count, | ||
... | |||
) |
Generate STARSH_randtlr object with incomplete set of parameters.
Parses possibly incomplete set of parameters for starsh_randtlr_generate(). If argument is not in the ...
, then its default value is used:
Argument | Default value | Type – |
---|---|---|
block_size | count | STARSH_int |
decay | 0.0 | double |
diag | 0.0 | double |
List of arguments ...
should look as pairs (Arg.constant, Value) with 0 as a last argument. For correspondance of arguments and arg.constants take a look at STARSH_RANDTLR_PARAM.
[out] | data | Address of pointer to STARSH_randtlr object. |
[in] | count | Size of matrix. |
[in] | ... | Variable amount of arguments. |
int starsh_randtlr_generate_va | ( | STARSH_randtlr ** | data, |
STARSH_int | count, | ||
va_list | args | ||
) |
Generate STARSH_randtlr object with incomplete set of parameters.
Parse possibly incomplete set of parameters for starsh_randtlr_generate(). If argument is not in the args
, then its default value is used:
Argument | Default value | Type – |
---|---|---|
block_size | count | STARSH_int |
decay | 0.0 | double |
diag | 0.0 | double |
List of arguments args
should look as pairs (Arg.constant, Value) with 0 as a last argument. For correspondance of arguments and arg.constants take a look at STARSH_RANDTLR_PARAM.
[out] | data | Address of pointer to STARSH_randtlr object. |
[in] | count | Size of matrix. |
[in] | args | Arguments, packed into va_args. |
int starsh_randtlr_get_kernel | ( | STARSH_kernel ** | kernel, |
STARSH_randtlr * | data, | ||
enum STARSH_RANDTLR_KERNEL | type | ||
) |
Get kernel for spatial statistics problem.
Kernel can be selected with this call or manually. Currently, there is only one kernel for STARSH_randtlr problem.
[out] | kernel | Address of pointer to STARSH_kernel function. |
[in] | data | Pointer to STARSH_randtlr object. |
[in] | type | Type of kernel. For more info look at STARSH_RANDTLR_KERNEL. |