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