00001
00010 #if !defined(INC_OSKI_HEUR_REGBLOCK_H)
00011
00012 #define INC_OSKI_HEUR_REGBLOCK_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_regblock_t MANGLE_(oski_regblock_t)
00022 #define oski_LoadProfileBCSRMatMult \
00023 MANGLE_(oski_LoadProfileBCSRMatMult)
00024 #define oski_UnloadProfileBCSRMatMult \
00025 MANGLE_(oski_UnloadProfileBCSRMatMult)
00026
00027 #endif
00028
00034 typedef struct
00035 {
00036 oski_index_t r;
00037 oski_index_t c;
00038 } oski_regblock_t;
00039
00046 typedef struct
00047 {
00048 size_t max_r;
00049 size_t max_c;
00050 double *perf;
00051 }
00052 oski_profile_BCSRMatMult_t;
00053
00058 #define PROF_BCSR_GET(P, r, c) ((P)->perf[((r)-1)*(P)->max_c + (c)-1])
00059
00064 #define PROF_BCSR_SET(P, r, c, v) \
00065 ((P)->perf[((r)-1)*(P)->max_c + (c)-1] = (v))
00066
00071 const oski_profile_BCSRMatMult_t *oski_LoadProfileBCSRMatMult (const char
00072 *filename);
00073
00078 void oski_UnloadProfileBCSRMatMult (void);
00079
00080 #endif
00081
00082