BeBOP Optimized Sparse Kernel Interface Library
1.0.1h
|
00001 00012 #if !defined(INC_BENCH_MATOPTS_H) 00013 00014 #define INC_BENCH_MATOPTS_H 00015 00016 #include <oski/common.h> 00017 #include <oski/mangle.h> 00018 #include <oski/matrix.h> 00019 00020 #if defined(DO_NAME_MANGLING) 00021 00022 #define matopts_t MANGLE_(matopts_t) 00023 #define matopts_Init MANGLE_(matopts_Init) 00024 #define matopts_Display MANGLE_(matopts_Display) 00025 #define matopts_Usage MANGLE_(matopts_Usage) 00026 #define matopts_Process MANGLE_(matopts_Process) 00027 #define matopts_CreateMat MANGLE_(matopts_CreateMat) 00028 #endif 00029 00033 #define IS_MATTYPE(x, mt) (strcmp(x, mt) == 0) 00034 00036 #define MATTYPE_HARWELL_BOEING "hb" 00037 00038 #define MATTYPE_DENSE "dense" 00039 00040 #define MATTYPE_BANDED "band" 00041 00042 #define MATTYPE_RANDOM "random" 00043 00044 #define MATTYPE_TRI_LOWER "lowtri" 00045 00046 #define MATTYPE_TRI_UPPER "uptri" 00047 00048 #define MATTYPE_SYMM "symm" 00049 00050 #define MATTYPE_RANDRECT "randrect" 00051 00054 typedef struct 00055 { 00056 const char *mattype; 00057 const char *matfile; 00058 int expand_symm; 00059 oski_index_t min_rows; 00060 oski_index_t min_cols; 00061 oski_index_t min_nnz; 00062 oski_index_t min_row_nnz; 00063 oski_index_t row_multiple; 00064 oski_index_t col_multiple; 00065 } matopts_t; 00066 00068 void matopts_Init (matopts_t * opts); 00069 00071 void matopts_Display (const matopts_t * opts, FILE * fp); 00072 00074 void matopts_Usage (FILE * fp); 00075 00077 int matopts_Process (int argc, char *argv[], int i, matopts_t * opts); 00078 00080 oski_matrix_t matopts_CreateMat (const matopts_t * opts, 00081 oski_index_t * p_num_rows, 00082 oski_index_t * p_num_cols, 00083 oski_index_t * p_nnz_stored, 00084 oski_index_t * p_nnz); 00085 #endif 00086 00087 /* eof */