BeBOP Optimized Sparse Kernel Interface Library
1.0.1h
|
00001 00011 #if !defined(INC_OSKI_HEUR_MREGBLOCK_H) 00012 00013 #define INC_OSKI_HEUR_MREGBLOCK_H 00014 00015 #include <oski/common.h> 00016 #include <oski/modcommon.h> 00017 #include <oski/heurexport.h> 00018 00019 #if defined(DO_NAME_MANGLING) 00020 00022 #define oski_mregblock_t MANGLE_(oski_mregblock_t) 00023 #define oski_LoadProfileMBCSRMatMult \ 00024 MANGLE_(oski_LoadProfileMBCSRMatMult) 00025 #define oski_UnloadProfileMBCSRMatMult \ 00026 MANGLE_(oski_UnloadProfileMBCSRMatMult) 00027 00028 #endif 00029 00035 typedef struct 00036 { 00037 oski_index_t r; 00038 oski_index_t c; 00039 } oski_mregblock_t; 00040 00047 typedef struct 00048 { 00049 size_t max_r; 00050 size_t max_c; 00051 double *perf; 00052 } 00053 oski_profile_MBCSRMatMult_t; 00054 00059 #define PROF_MBCSR_GET(P, r, c) ((P)->perf[((r)-1)*(P)->max_c + (c)-1]) 00060 00065 #define PROF_MBCSR_SET(P, r, c, v) \ 00066 ((P)->perf[((r)-1)*(P)->max_c + (c)-1] = (v)) 00067 00072 const oski_profile_MBCSRMatMult_t *oski_LoadProfileMBCSRMatMult (const char 00073 *filename); 00074 00079 void oski_UnloadProfileMBCSRMatMult (void); 00080 00081 #endif 00082 00083 /* eof */