isl_map_fix_si: drop basic maps that have become empty
[isl.git] / isl_multi_templ.h
blob329985ed7eb8114fcbe06aafe6658e82386beea1
1 #define xCAT(A,B) A ## B
2 #define CAT(A,B) xCAT(A,B)
3 #undef EL
4 #define EL CAT(isl_,BASE)
5 #define xMULTI(BASE) isl_multi_ ## BASE
6 #define MULTI(BASE) xMULTI(BASE)
8 struct MULTI(BASE) {
9 int ref;
10 isl_space *space;
12 int n;
13 EL *p[1];
16 #define ISL_DECLARE_MULTI_PRIVATE(BASE) \
17 __isl_give isl_multi_##BASE *isl_multi_##BASE##_alloc( \
18 __isl_take isl_space *space); \
19 __isl_give isl_multi_##BASE *isl_multi_##BASE##_set_##BASE( \
20 __isl_take isl_multi_##BASE *multi, int pos, __isl_take EL *el);
22 ISL_DECLARE_MULTI_PRIVATE(aff)