STARS-H
Software for Testing Accuracy, Reliability and Scalability of Hierarchical computations
starsh-randtlr.h
Go to the documentation of this file.
1 
13 #ifndef __STARSH_RANDTLR_H__
14 #define __STARSH_RANDTLR_H__
15 
28 // Add definitions for size_t, va_list and STARSH_kernel
29 #include "starsh.h"
30 
31 typedef struct starsh_randtlr
33 
35 {
38  //char dtype; // not supported yet
44  double *U;
46  double *S;
48  double diag;
51 
54 
59 {
62 };
63 
66 
75 {
82 };
83 
85  STARSH_int block_size, double decay, double diag);
87  va_list args);
90  enum STARSH_RANDTLR_KERNEL type);
92 
93 // KERNELS
94 void starsh_randtlr_block_kernel(int nrows, int ncols, STARSH_int *irow,
95  STARSH_int *icol, void *row_data, void *col_data, void *result,
96  int ld);
97 
98 #endif // __STARSH_RANDTLR_H__
struct starsh_randtlr STARSH_randtlr
Structure for synthetic TLR matrices.
Decay of singular values, first singular value is 1.0.
Definition: starsh-randtlr.h:78
ssize_t STARSH_int
STARSH signed integer to support more, than MAX_INT rows/columns.
Definition: starsh.h:64
Size of tiles.
Definition: starsh-randtlr.h:76
void starsh_randtlr_free(STARSH_randtlr *data)
Free memory of STARSH_randtlr object.
Definition: randtlr.c:240
STARSH_int count
Number of rows/columns of synthetic matrix.
Definition: starsh-randtlr.h:36
int starsh_randtlr_get_kernel(STARSH_kernel **kernel, STARSH_randtlr *data, enum STARSH_RANDTLR_KERNEL type)
Get kernel for spatial statistics problem.
Definition: randtlr.c:213
Value to add to diagonal elements.
Definition: starsh-randtlr.h:80
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.
Definition: randtlr.c:59
STARSH_int block_size
Size of each tile.
Definition: starsh-randtlr.h:42
double * U
Pointer to count-by-block_size matrix-generator.
Definition: starsh-randtlr.h:44
int starsh_randtlr_generate_va(STARSH_randtlr **data, STARSH_int count, va_list args)
Generate STARSH_randtlr object with incomplete set of parameters.
Definition: randtlr.c:107
STARSH_int nblocks
Number of tiles in one dimension.
Definition: starsh-randtlr.h:40
double diag
Value to add to each diagonal element (for positive definiteness).
Definition: starsh-randtlr.h:48
void STARSH_kernel(int nrows, int ncols, STARSH_int *irow, STARSH_int *icol, void *row_data, void *col_data, void *result, int ld)
Definition: starsh.h:68
STARSH_RANDTLR_PARAM
List of parameters for starsh_application().
Definition: starsh-randtlr.h:64
STARSH_RANDTLR_KERNEL
List of built-in kernels for starsh_randtlr_get_kernel().
Definition: starsh-randtlr.h:52
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.
Definition: randtlr.c:17
int starsh_randtlr_generate_el(STARSH_randtlr **data, STARSH_int count,...)
Generate STARSH_randtlr object with incomplete set of parameters.
Definition: randtlr.c:168
The only kernel.
Definition: starsh-randtlr.h:60
Structure for synthetic TLR matrices.
Definition: starsh-randtlr.h:31
double * S
Array of singular values, which is common for all tiles.
Definition: starsh-randtlr.h:46