|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
tools/polly/lib/External/isl/isl_multi_align_templ.c 12 static __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),align_params),ALIGN_DOMBASE)(
12 static __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),align_params),ALIGN_DOMBASE)(
13 __isl_take MULTI(BASE) *multi, __isl_take ALIGN_DOM *domain,
14 __isl_give MULTI(BASE) *fn(__isl_take MULTI(BASE) *multi,
14 __isl_give MULTI(BASE) *fn(__isl_take MULTI(BASE) *multi,
34 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
36 multi = FN(MULTI(BASE),align_params)(multi,
39 FN(MULTI(BASE),get_space)(multi));
42 FN(MULTI(BASE),free)(multi);
tools/polly/lib/External/isl/isl_multi_apply_templ.c 18 __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),apply_aligned),APPLY_DOMBASE)(
18 __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),apply_aligned),APPLY_DOMBASE)(
19 __isl_take MULTI(BASE) *multi, __isl_take APPLY_DOM *set,
32 multi = FN(MULTI(BASE),cow)(multi);
46 FN(MULTI(BASE),free)(multi);
55 static __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),apply),APPLY_DOMBASE)(
55 static __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),apply),APPLY_DOMBASE)(
56 __isl_take MULTI(BASE) *multi, __isl_take APPLY_DOM *set,
69 return FN(FN(MULTI(BASE),apply_aligned),APPLY_DOMBASE)(multi,
71 ctx = FN(MULTI(BASE),get_ctx)(multi);
76 multi = FN(MULTI(BASE),align_params)(multi,
78 set = FN(APPLY_DOM,align_params)(set, FN(MULTI(BASE),get_space)(multi));
79 return FN(FN(MULTI(BASE),apply_aligned),APPLY_DOMBASE)(multi, set, fn);
81 FN(MULTI(BASE),free)(multi);
tools/polly/lib/External/isl/isl_multi_coalesce.c 18 __isl_give MULTI(BASE) *FN(MULTI(BASE),coalesce)(__isl_take MULTI(BASE) *multi)
18 __isl_give MULTI(BASE) *FN(MULTI(BASE),coalesce)(__isl_take MULTI(BASE) *multi)
18 __isl_give MULTI(BASE) *FN(MULTI(BASE),coalesce)(__isl_take MULTI(BASE) *multi)
29 return FN(MULTI(BASE),free)(multi);
tools/polly/lib/External/isl/isl_multi_dims.c 19 isl_bool FN(MULTI(BASE),involves_dims)(__isl_keep MULTI(BASE) *multi,
19 isl_bool FN(MULTI(BASE),involves_dims)(__isl_keep MULTI(BASE) *multi,
37 if (FN(MULTI(BASE),has_explicit_domain)(multi))
38 return FN(MULTI(BASE),involves_explicit_domain_dims)(multi,
44 __isl_give MULTI(BASE) *FN(MULTI(BASE),insert_dims)(
44 __isl_give MULTI(BASE) *FN(MULTI(BASE),insert_dims)(
45 __isl_take MULTI(BASE) *multi,
53 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
55 return FN(MULTI(BASE),free)(multi));
59 multi = FN(MULTI(BASE),cow)(multi);
65 return FN(MULTI(BASE),free)(multi);
66 if (FN(MULTI(BASE),has_explicit_domain)(multi))
67 multi = FN(MULTI(BASE),insert_explicit_domain_dims)(multi,
76 return FN(MULTI(BASE),free)(multi);
82 __isl_give MULTI(BASE) *FN(MULTI(BASE),add_dims)(__isl_take MULTI(BASE) *multi,
82 __isl_give MULTI(BASE) *FN(MULTI(BASE),add_dims)(__isl_take MULTI(BASE) *multi,
82 __isl_give MULTI(BASE) *FN(MULTI(BASE),add_dims)(__isl_take MULTI(BASE) *multi,
87 pos = FN(MULTI(BASE),dim)(multi, type);
89 return FN(MULTI(BASE),insert_dims)(multi, type, pos, n);
95 __isl_give MULTI(BASE) *FN(MULTI(BASE),project_domain_on_params)(
95 __isl_give MULTI(BASE) *FN(MULTI(BASE),project_domain_on_params)(
96 __isl_take MULTI(BASE) *multi)
102 n = FN(MULTI(BASE),dim)(multi, isl_dim_in);
103 involves = FN(MULTI(BASE),involves_dims)(multi, isl_dim_in, 0, n);
105 return FN(MULTI(BASE),free)(multi);
107 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
109 return FN(MULTI(BASE),free)(multi));
110 multi = FN(MULTI(BASE),drop_dims)(multi, isl_dim_in, 0, n);
111 space = FN(MULTI(BASE),get_domain_space)(multi);
113 multi = FN(MULTI(BASE),reset_domain_space)(multi, space);
tools/polly/lib/External/isl/isl_multi_explicit_domain.c 15 __isl_give MULTI(BASE) *FN(MULTI(BASE),cow)(__isl_take MULTI(BASE) *multi);
15 __isl_give MULTI(BASE) *FN(MULTI(BASE),cow)(__isl_take MULTI(BASE) *multi);
15 __isl_give MULTI(BASE) *FN(MULTI(BASE),cow)(__isl_take MULTI(BASE) *multi);
21 static int FN(MULTI(BASE),has_explicit_domain)(__isl_keep MULTI(BASE) *multi)
21 static int FN(MULTI(BASE),has_explicit_domain)(__isl_keep MULTI(BASE) *multi)
28 static isl_stat FN(MULTI(BASE),check_has_explicit_domain)(
29 __isl_keep MULTI(BASE) *multi)
33 if (!FN(MULTI(BASE),has_explicit_domain)(multi))
34 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_internal,
42 static __isl_keep DOM *FN(MULTI(BASE),peek_explicit_domain)(
43 __isl_keep MULTI(BASE) *multi)
45 if (FN(MULTI(BASE),check_has_explicit_domain)(multi) < 0)
52 static __isl_give DOM *FN(MULTI(BASE),get_explicit_domain)(
53 __isl_keep MULTI(BASE) *multi)
55 return FN(DOM,copy)(FN(MULTI(BASE),peek_explicit_domain)(multi));
60 static __isl_give MULTI(BASE) *FN(MULTI(BASE),set_explicit_domain)(
60 static __isl_give MULTI(BASE) *FN(MULTI(BASE),set_explicit_domain)(
61 __isl_take MULTI(BASE) *multi, __isl_take DOM *dom)
63 if (FN(MULTI(BASE),check_has_explicit_domain)(multi) < 0)
65 multi = FN(MULTI(BASE),cow)(multi);
71 return FN(MULTI(BASE),free)(multi);
74 FN(MULTI(BASE),free)(multi);
86 static __isl_give MULTI(BASE) *FN(MULTI(BASE),intersect_explicit_domain)(
86 static __isl_give MULTI(BASE) *FN(MULTI(BASE),intersect_explicit_domain)(
87 __isl_take MULTI(BASE) *dst, __isl_keep MULTI(BASE) *src)
87 __isl_take MULTI(BASE) *dst, __isl_keep MULTI(BASE) *src)
92 dom = FN(MULTI(BASE),peek_explicit_domain)(src);
95 return FN(MULTI(BASE),free)(dst);
99 dst = FN(MULTI(BASE),intersect_domain)(dst, dom);
104 dst = FN(MULTI(BASE),intersect_params)(dst, params);
112 static __isl_give MULTI(BASE) *FN(MULTI(BASE),copy_explicit_domain)(
112 static __isl_give MULTI(BASE) *FN(MULTI(BASE),copy_explicit_domain)(
113 __isl_take MULTI(BASE) *dst, __isl_keep MULTI(BASE) *src)
113 __isl_take MULTI(BASE) *dst, __isl_keep MULTI(BASE) *src)
117 dom = FN(MULTI(BASE),get_explicit_domain)(src);
118 dst = FN(MULTI(BASE),set_explicit_domain)(dst, dom);
125 static __isl_give MULTI(BASE) *FN(MULTI(BASE),align_explicit_domain_params)(
125 static __isl_give MULTI(BASE) *FN(MULTI(BASE),align_explicit_domain_params)(
126 __isl_take MULTI(BASE) *multi, __isl_take isl_space *space)
130 dom = FN(MULTI(BASE),get_explicit_domain)(multi);
132 multi = FN(MULTI(BASE),set_explicit_domain)(multi, dom);
140 static __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_explicit_domain_space)(
140 static __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_explicit_domain_space)(
141 __isl_take MULTI(BASE) *multi, __isl_take isl_space *space)
145 dom = FN(MULTI(BASE),get_explicit_domain)(multi);
147 multi = FN(MULTI(BASE),set_explicit_domain)(multi, dom);
154 static void FN(MULTI(BASE),free_explicit_domain)(__isl_keep MULTI(BASE) *multi)
154 static void FN(MULTI(BASE),free_explicit_domain)(__isl_keep MULTI(BASE) *multi)
156 if (FN(MULTI(BASE),check_has_explicit_domain)(multi) < 0)
163 static isl_bool FN(MULTI(BASE),equal_explicit_domain)(
164 __isl_keep MULTI(BASE) *multi1, __isl_keep MULTI(BASE) *multi2)
164 __isl_keep MULTI(BASE) *multi1, __isl_keep MULTI(BASE) *multi2)
169 if (FN(MULTI(BASE),check_has_explicit_domain)(multi1) < 0 ||
170 FN(MULTI(BASE),check_has_explicit_domain)(multi2) < 0)
172 dom1 = FN(MULTI(BASE),get_explicit_domain)(multi1);
173 dom2 = FN(MULTI(BASE),get_explicit_domain)(multi2);
181 static isl_stat FN(MULTI(BASE),check_explicit_domain)(
182 __isl_keep MULTI(BASE) *multi) __attribute__ ((unused));
187 isl_stat FN(MULTI(BASE),check_explicit_domain)(__isl_keep MULTI(BASE) *multi)
187 isl_stat FN(MULTI(BASE),check_explicit_domain)(__isl_keep MULTI(BASE) *multi)
192 if (FN(MULTI(BASE),check_has_explicit_domain)(multi) < 0)
202 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_internal,
tools/polly/lib/External/isl/isl_multi_gist.c 16 __isl_give MULTI(BASE) *FN(MULTI(BASE),gist)(__isl_take MULTI(BASE) *multi,
16 __isl_give MULTI(BASE) *FN(MULTI(BASE),gist)(__isl_take MULTI(BASE) *multi,
16 __isl_give MULTI(BASE) *FN(MULTI(BASE),gist)(__isl_take MULTI(BASE) *multi,
19 return FN(FN(MULTI(BASE),apply),DOMBASE)(multi, context, &FN(EL,gist));
25 __isl_give MULTI(BASE) *FN(MULTI(BASE),gist_params)(
25 __isl_give MULTI(BASE) *FN(MULTI(BASE),gist_params)(
26 __isl_take MULTI(BASE) *multi, __isl_take isl_set *context)
28 return FN(MULTI(BASE),apply_set)(multi, context, &FN(EL,gist_params));
tools/polly/lib/External/isl/isl_multi_hash.c 14 uint32_t FN(MULTI(BASE),get_hash)(__isl_keep MULTI(BASE) *multi)
14 uint32_t FN(MULTI(BASE),get_hash)(__isl_keep MULTI(BASE) *multi)
tools/polly/lib/External/isl/isl_multi_intersect.c 16 static isl_bool FN(MULTI(BASE),compatible_domain)(
17 __isl_keep MULTI(BASE) *multi, __isl_keep DOM *domain)
23 space = FN(MULTI(BASE),get_space)(multi);
34 static isl_stat FN(MULTI(BASE),check_compatible_domain)(
35 __isl_keep MULTI(BASE) *multi, __isl_keep DOM *domain)
39 ok = FN(MULTI(BASE),compatible_domain)(multi, domain);
59 static __isl_give MULTI(BASE) *FN(MULTI(BASE),domain_intersect_aligned)(
59 static __isl_give MULTI(BASE) *FN(MULTI(BASE),domain_intersect_aligned)(
60 __isl_take MULTI(BASE) *multi, __isl_take DOM *domain)
65 if (FN(MULTI(BASE),check_compatible_domain)(multi, domain) < 0)
67 if (FN(MULTI(BASE),check_has_explicit_domain)(multi) < 0)
72 multi_dom = FN(MULTI(BASE),get_explicit_domain)(multi);
81 multi = FN(MULTI(BASE),set_explicit_domain)(multi, domain);
84 FN(MULTI(BASE),free)(multi);
92 static __isl_give MULTI(BASE) *FN(MULTI(BASE),domain_intersect)(
92 static __isl_give MULTI(BASE) *FN(MULTI(BASE),domain_intersect)(
93 __isl_take MULTI(BASE) *multi, __isl_take DOM *domain)
95 return FN(FN(MULTI(BASE),align_params),DOMBASE)(multi, domain,
96 FN(MULTI(BASE),domain_intersect_aligned));
104 __isl_give MULTI(BASE) *FN(MULTI(BASE),intersect_domain)(
104 __isl_give MULTI(BASE) *FN(MULTI(BASE),intersect_domain)(
105 __isl_take MULTI(BASE) *multi, __isl_take DOM *domain)
107 if (FN(MULTI(BASE),has_explicit_domain)(multi))
108 return FN(MULTI(BASE),domain_intersect)(multi, domain);
109 return FN(FN(MULTI(BASE),apply),DOMBASE)(multi, domain,
116 static __isl_give MULTI(BASE) *FN(MULTI(BASE),domain_intersect_params_aligned)(
116 static __isl_give MULTI(BASE) *FN(MULTI(BASE),domain_intersect_params_aligned)(
117 __isl_take MULTI(BASE) *multi, __isl_take isl_set *domain)
121 multi_dom = FN(MULTI(BASE),get_explicit_domain)(multi);
123 multi = FN(MULTI(BASE),set_explicit_domain)(multi, multi_dom);
132 static __isl_give MULTI(BASE) *FN(MULTI(BASE),domain_intersect_params)(
132 static __isl_give MULTI(BASE) *FN(MULTI(BASE),domain_intersect_params)(
133 __isl_take MULTI(BASE) *multi, __isl_take isl_set *domain)
135 return FN(FN(MULTI(BASE),align_params),set)(multi, domain,
136 FN(MULTI(BASE),domain_intersect_params_aligned));
144 __isl_give MULTI(BASE) *FN(MULTI(BASE),intersect_params)(
144 __isl_give MULTI(BASE) *FN(MULTI(BASE),intersect_params)(
145 __isl_take MULTI(BASE) *multi, __isl_take isl_set *domain)
147 if (FN(MULTI(BASE),has_explicit_domain)(multi))
148 return FN(MULTI(BASE),domain_intersect_params)(multi, domain);
149 return FN(MULTI(BASE),apply_set)(multi, domain,
tools/polly/lib/External/isl/isl_multi_templ.c 23 isl_ctx *FN(MULTI(BASE),get_ctx)(__isl_keep MULTI(BASE) *multi)
23 isl_ctx *FN(MULTI(BASE),get_ctx)(__isl_keep MULTI(BASE) *multi)
30 __isl_keep isl_space *FN(MULTI(BASE),peek_space)(__isl_keep MULTI(BASE) *multi)
30 __isl_keep isl_space *FN(MULTI(BASE),peek_space)(__isl_keep MULTI(BASE) *multi)
35 __isl_give isl_space *FN(MULTI(BASE),get_space)(__isl_keep MULTI(BASE) *multi)
35 __isl_give isl_space *FN(MULTI(BASE),get_space)(__isl_keep MULTI(BASE) *multi)
37 return isl_space_copy(FN(MULTI(BASE),peek_space)(multi));
44 int FN(MULTI(BASE),find_dim_by_name)(__isl_keep MULTI(BASE) *multi,
44 int FN(MULTI(BASE),find_dim_by_name)(__isl_keep MULTI(BASE) *multi,
52 __isl_give isl_space *FN(MULTI(BASE),get_domain_space)(
53 __isl_keep MULTI(BASE) *multi)
64 __isl_give MULTI(BASE) *FN(MULTI(BASE),alloc)(__isl_take isl_space *space)
64 __isl_give MULTI(BASE) *FN(MULTI(BASE),alloc)(__isl_take isl_space *space)
68 MULTI(BASE) *multi;
76 multi = isl_calloc(ctx, MULTI(BASE),
77 sizeof(MULTI(BASE)) + (n - 1) * sizeof(struct EL *));
79 multi = isl_calloc(ctx, MULTI(BASE), sizeof(MULTI(BASE)));
79 multi = isl_calloc(ctx, MULTI(BASE), sizeof(MULTI(BASE)));
86 if (FN(MULTI(BASE),has_explicit_domain)(multi))
87 multi = FN(MULTI(BASE),init_explicit_domain)(multi);
94 __isl_give MULTI(BASE) *FN(MULTI(BASE),dup)(__isl_keep MULTI(BASE) *multi)
94 __isl_give MULTI(BASE) *FN(MULTI(BASE),dup)(__isl_keep MULTI(BASE) *multi)
94 __isl_give MULTI(BASE) *FN(MULTI(BASE),dup)(__isl_keep MULTI(BASE) *multi)
97 MULTI(BASE) *dup;
102 dup = FN(MULTI(BASE),alloc)(isl_space_copy(multi->space));
107 dup = FN(FN(MULTI(BASE),set),BASE)(dup, i,
107 dup = FN(FN(MULTI(BASE),set),BASE)(dup, i,
109 if (FN(MULTI(BASE),has_explicit_domain)(multi))
110 dup = FN(MULTI(BASE),copy_explicit_domain)(dup, multi);
115 __isl_give MULTI(BASE) *FN(MULTI(BASE),cow)(__isl_take MULTI(BASE) *multi)
115 __isl_give MULTI(BASE) *FN(MULTI(BASE),cow)(__isl_take MULTI(BASE) *multi)
115 __isl_give MULTI(BASE) *FN(MULTI(BASE),cow)(__isl_take MULTI(BASE) *multi)
124 return FN(MULTI(BASE),dup)(multi);
127 __isl_give MULTI(BASE) *FN(MULTI(BASE),copy)(__isl_keep MULTI(BASE) *multi)
127 __isl_give MULTI(BASE) *FN(MULTI(BASE),copy)(__isl_keep MULTI(BASE) *multi)
127 __isl_give MULTI(BASE) *FN(MULTI(BASE),copy)(__isl_keep MULTI(BASE) *multi)
136 __isl_null MULTI(BASE) *FN(MULTI(BASE),free)(__isl_take MULTI(BASE) *multi)
136 __isl_null MULTI(BASE) *FN(MULTI(BASE),free)(__isl_take MULTI(BASE) *multi)
136 __isl_null MULTI(BASE) *FN(MULTI(BASE),free)(__isl_take MULTI(BASE) *multi)
149 if (FN(MULTI(BASE),has_explicit_domain)(multi))
150 FN(MULTI(BASE),free_explicit_domain)(multi);
156 unsigned FN(MULTI(BASE),dim)(__isl_keep MULTI(BASE) *multi,
156 unsigned FN(MULTI(BASE),dim)(__isl_keep MULTI(BASE) *multi,
165 int FN(MULTI(BASE),find_dim_by_id)(__isl_keep MULTI(BASE) *multi,
165 int FN(MULTI(BASE),find_dim_by_id)(__isl_keep MULTI(BASE) *multi,
175 __isl_give isl_id *FN(MULTI(BASE),get_dim_id)(__isl_keep MULTI(BASE) *multi,
175 __isl_give isl_id *FN(MULTI(BASE),get_dim_id)(__isl_keep MULTI(BASE) *multi,
181 __isl_give MULTI(BASE) *FN(MULTI(BASE),set_dim_name)(
181 __isl_give MULTI(BASE) *FN(MULTI(BASE),set_dim_name)(
182 __isl_take MULTI(BASE) *multi,
187 multi = FN(MULTI(BASE),cow)(multi);
193 return FN(MULTI(BASE),free)(multi);
201 return FN(MULTI(BASE),free)(multi);
207 const char *FN(MULTI(BASE),get_tuple_name)(__isl_keep MULTI(BASE) *multi,
207 const char *FN(MULTI(BASE),get_tuple_name)(__isl_keep MULTI(BASE) *multi,
215 isl_bool FN(MULTI(BASE),has_tuple_id)(__isl_keep MULTI(BASE) *multi,
215 isl_bool FN(MULTI(BASE),has_tuple_id)(__isl_keep MULTI(BASE) *multi,
225 __isl_give isl_id *FN(MULTI(BASE),get_tuple_id)(__isl_keep MULTI(BASE) *multi,
225 __isl_give isl_id *FN(MULTI(BASE),get_tuple_id)(__isl_keep MULTI(BASE) *multi,
231 __isl_give EL *FN(FN(MULTI(BASE),get),BASE)(__isl_keep MULTI(BASE) *multi,
231 __isl_give EL *FN(FN(MULTI(BASE),get),BASE)(__isl_keep MULTI(BASE) *multi,
231 __isl_give EL *FN(FN(MULTI(BASE),get),BASE)(__isl_keep MULTI(BASE) *multi,
238 ctx = FN(MULTI(BASE),get_ctx)(multi);
248 static __isl_give MULTI(BASE) *FN(MULTI(BASE),restore)(
248 static __isl_give MULTI(BASE) *FN(MULTI(BASE),restore)(
249 __isl_take MULTI(BASE) *multi, int pos, __isl_take EL *el)
251 multi = FN(MULTI(BASE),cow)(multi);
256 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
264 FN(MULTI(BASE),free)(multi);
274 static __isl_give MULTI(BASE) *FN(MULTI(BASE),restore_check_space)(
274 static __isl_give MULTI(BASE) *FN(MULTI(BASE),restore_check_space)(
275 __isl_take MULTI(BASE) *multi, int pos, __isl_take EL *el)
279 space = FN(MULTI(BASE),peek_space)(multi);
281 multi = FN(MULTI(BASE),free)(multi);
282 return FN(MULTI(BASE),restore)(multi, pos, el);
285 __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),set),BASE)(
285 __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),set),BASE)(
285 __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),set),BASE)(
286 __isl_take MULTI(BASE) *multi, int pos, __isl_take EL *el)
292 multi_space = FN(MULTI(BASE),get_space)(multi);
297 multi = FN(MULTI(BASE),align_params)(multi,
300 multi_space = FN(MULTI(BASE),get_space)(multi);
304 multi = FN(MULTI(BASE),restore_check_space)(multi, pos, el);
311 FN(MULTI(BASE),free)(multi);
328 __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_space_and_domain)(
328 __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_space_and_domain)(
329 __isl_take MULTI(BASE) *multi, __isl_take isl_space *space,
334 multi = FN(MULTI(BASE),cow)(multi);
344 if (FN(MULTI(BASE),has_explicit_domain)(multi)) {
345 multi = FN(MULTI(BASE),reset_explicit_domain_space)(multi,
358 FN(MULTI(BASE),free)(multi);
362 __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_domain_space)(
362 __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_domain_space)(
363 __isl_take MULTI(BASE) *multi, __isl_take isl_space *domain)
369 return FN(MULTI(BASE),reset_space_and_domain)(multi, space, domain);
372 __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_space)(
372 __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_space)(
373 __isl_take MULTI(BASE) *multi, __isl_take isl_space *space)
378 return FN(MULTI(BASE),reset_space_and_domain)(multi, space, domain);
383 __isl_give MULTI(BASE) *FN(MULTI(BASE),set_dim_id)(
383 __isl_give MULTI(BASE) *FN(MULTI(BASE),set_dim_id)(
384 __isl_take MULTI(BASE) *multi,
389 multi = FN(MULTI(BASE),cow)(multi);
393 space = FN(MULTI(BASE),get_space)(multi);
396 return FN(MULTI(BASE),reset_space)(multi, space);
399 FN(MULTI(BASE),free)(multi);
403 __isl_give MULTI(BASE) *FN(MULTI(BASE),set_tuple_name)(
403 __isl_give MULTI(BASE) *FN(MULTI(BASE),set_tuple_name)(
404 __isl_keep MULTI(BASE) *multi, enum isl_dim_type type,
409 multi = FN(MULTI(BASE),cow)(multi);
413 space = FN(MULTI(BASE),get_space)(multi);
416 return FN(MULTI(BASE),reset_space)(multi, space);
419 __isl_give MULTI(BASE) *FN(MULTI(BASE),set_tuple_id)(
419 __isl_give MULTI(BASE) *FN(MULTI(BASE),set_tuple_id)(
420 __isl_take MULTI(BASE) *multi, enum isl_dim_type type,
425 multi = FN(MULTI(BASE),cow)(multi);
429 space = FN(MULTI(BASE),get_space)(multi);
432 return FN(MULTI(BASE),reset_space)(multi, space);
440 __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_tuple_id)(
440 __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_tuple_id)(
441 __isl_take MULTI(BASE) *multi, enum isl_dim_type type)
447 if (!FN(MULTI(BASE),has_tuple_id)(multi, type))
450 multi = FN(MULTI(BASE),cow)(multi);
454 space = FN(MULTI(BASE),get_space)(multi);
457 return FN(MULTI(BASE),reset_space)(multi, space);
463 __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_user)(
463 __isl_give MULTI(BASE) *FN(MULTI(BASE),reset_user)(
464 __isl_take MULTI(BASE) *multi)
468 space = FN(MULTI(BASE),get_space)(multi);
471 return FN(MULTI(BASE),reset_space)(multi, space);
474 __isl_give MULTI(BASE) *FN(MULTI(BASE),realign_domain)(
474 __isl_give MULTI(BASE) *FN(MULTI(BASE),realign_domain)(
475 __isl_take MULTI(BASE) *multi, __isl_take isl_reordering *exp)
480 multi = FN(MULTI(BASE),cow)(multi);
492 multi = FN(MULTI(BASE),reset_domain_space)(multi, space);
498 FN(MULTI(BASE),free)(multi);
507 __isl_give MULTI(BASE) *FN(MULTI(BASE),align_params)(
507 __isl_give MULTI(BASE) *FN(MULTI(BASE),align_params)(
508 __isl_take MULTI(BASE) *multi, __isl_take isl_space *model)
533 if (FN(MULTI(BASE),has_explicit_domain)(multi)) {
534 multi = FN(MULTI(BASE),align_explicit_domain_params)(multi,
541 FN(MULTI(BASE),get_domain_space)(multi));
542 multi = FN(MULTI(BASE),realign_domain)(multi, exp);
548 FN(MULTI(BASE),free)(multi);
559 __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),from),LIST(BASE))(
559 __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),from),LIST(BASE))(
559 __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),from),LIST(BASE))(
565 MULTI(BASE) *multi;
571 n = FN(FN(LIST(EL),n),BASE)(list);
580 multi = FN(MULTI(BASE),alloc)(isl_space_copy(space));
582 EL *el = FN(FN(LIST(EL),get),BASE)(list, i);
584 multi = FN(MULTI(BASE),restore_check_space)(multi, i, el);
600 __isl_give MULTI(BASE) *FN(MULTI(BASE),identity)(__isl_take isl_space *space)
600 __isl_give MULTI(BASE) *FN(MULTI(BASE),identity)(__isl_take isl_space *space)
604 MULTI(BASE) *multi;
619 multi = FN(MULTI(BASE),alloc)(isl_space_copy(space));
633 multi = FN(FN(MULTI(BASE),set),BASE)(multi, i, el);
633 multi = FN(FN(MULTI(BASE),set),BASE)(multi, i, el);
649 __isl_give MULTI(BASE) *FN(MULTI(BASE),zero)(__isl_take isl_space *space)
649 __isl_give MULTI(BASE) *FN(MULTI(BASE),zero)(__isl_take isl_space *space)
652 MULTI(BASE) *multi;
658 multi = FN(MULTI(BASE),alloc)(isl_space_copy(space));
672 multi = FN(FN(MULTI(BASE),set),BASE)(multi, i,
672 multi = FN(FN(MULTI(BASE),set),BASE)(multi, i,
692 __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),from),BASE)(__isl_take EL *el)
692 __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),from),BASE)(__isl_take EL *el)
692 __isl_give MULTI(BASE) *FN(FN(MULTI(BASE),from),BASE)(__isl_take EL *el)
695 MULTI(BASE) *multi;
702 multi = FN(MULTI(BASE),alloc)(space);
703 multi = FN(FN(MULTI(BASE),set),BASE)(multi, 0, el);
703 multi = FN(FN(MULTI(BASE),set),BASE)(multi, 0, el);
709 __isl_give MULTI(BASE) *FN(MULTI(BASE),drop_dims)(
709 __isl_give MULTI(BASE) *FN(MULTI(BASE),drop_dims)(
710 __isl_take MULTI(BASE) *multi,
716 multi = FN(MULTI(BASE),cow)(multi);
720 dim = FN(MULTI(BASE),dim)(multi, type);
722 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
724 return FN(MULTI(BASE),free)(multi));
728 return FN(MULTI(BASE),free)(multi);
736 if (n > 0 && FN(MULTI(BASE),has_explicit_domain)(multi))
737 multi = FN(MULTI(BASE),init_explicit_domain)(multi);
742 if (FN(MULTI(BASE),has_explicit_domain)(multi))
743 multi = FN(MULTI(BASE),drop_explicit_domain_dims)(multi,
751 return FN(MULTI(BASE),free)(multi);
759 static __isl_give MULTI(BASE) *FN(MULTI(BASE),align_params_multi_multi_and)(
759 static __isl_give MULTI(BASE) *FN(MULTI(BASE),align_params_multi_multi_and)(
760 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2,
760 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2,
761 __isl_give MULTI(BASE) *(*fn)(__isl_take MULTI(BASE) *multi1,
761 __isl_give MULTI(BASE) *(*fn)(__isl_take MULTI(BASE) *multi1,
762 __isl_take MULTI(BASE) *multi2))
774 ctx = FN(MULTI(BASE),get_ctx)(multi1);
779 multi1 = FN(MULTI(BASE),align_params)(multi1,
780 FN(MULTI(BASE),get_space)(multi2));
781 multi2 = FN(MULTI(BASE),align_params)(multi2,
782 FN(MULTI(BASE),get_space)(multi1));
785 FN(MULTI(BASE),free)(multi1);
786 FN(MULTI(BASE),free)(multi2);
798 static __isl_give MULTI(BASE) *FN(MULTI(BASE),range_product_aligned)(
798 static __isl_give MULTI(BASE) *FN(MULTI(BASE),range_product_aligned)(
799 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2)
799 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2)
804 MULTI(BASE) *res;
809 space = isl_space_range_product(FN(MULTI(BASE),get_space)(multi1),
810 FN(MULTI(BASE),get_space)(multi2));
811 res = FN(MULTI(BASE),alloc)(space);
813 n1 = FN(MULTI(BASE),dim)(multi1, isl_dim_out);
814 n2 = FN(MULTI(BASE),dim)(multi2, isl_dim_out);
817 el = FN(FN(MULTI(BASE),get),BASE)(multi1, i);
817 el = FN(FN(MULTI(BASE),get),BASE)(multi1, i);
818 res = FN(FN(MULTI(BASE),set),BASE)(res, i, el);
818 res = FN(FN(MULTI(BASE),set),BASE)(res, i, el);
822 el = FN(FN(MULTI(BASE),get),BASE)(multi2, i);
822 el = FN(FN(MULTI(BASE),get),BASE)(multi2, i);
823 res = FN(FN(MULTI(BASE),set),BASE)(res, n1 + i, el);
823 res = FN(FN(MULTI(BASE),set),BASE)(res, n1 + i, el);
826 if (FN(MULTI(BASE),has_explicit_domain)(multi1))
827 res = FN(MULTI(BASE),intersect_explicit_domain)(res, multi1);
828 if (FN(MULTI(BASE),has_explicit_domain)(multi2))
829 res = FN(MULTI(BASE),intersect_explicit_domain)(res, multi2);
831 FN(MULTI(BASE),free)(multi1);
832 FN(MULTI(BASE),free)(multi2);
835 FN(MULTI(BASE),free)(multi1);
836 FN(MULTI(BASE),free)(multi2);
843 __isl_give MULTI(BASE) *FN(MULTI(BASE),range_product)(
843 __isl_give MULTI(BASE) *FN(MULTI(BASE),range_product)(
844 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2)
844 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2)
846 return FN(MULTI(BASE),align_params_multi_multi_and)(multi1, multi2,
847 &FN(MULTI(BASE),range_product_aligned));
852 isl_bool FN(MULTI(BASE),range_is_wrapping)(__isl_keep MULTI(BASE) *multi)
852 isl_bool FN(MULTI(BASE),range_is_wrapping)(__isl_keep MULTI(BASE) *multi)
861 __isl_give MULTI(BASE) *FN(MULTI(BASE),range_factor_domain)(
861 __isl_give MULTI(BASE) *FN(MULTI(BASE),range_factor_domain)(
862 __isl_take MULTI(BASE) *multi)
870 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
872 return FN(MULTI(BASE),free)(multi));
874 space = FN(MULTI(BASE),get_space)(multi);
878 multi = FN(MULTI(BASE),drop_dims)(multi,
880 multi = FN(MULTI(BASE),reset_space)(multi, space);
887 __isl_give MULTI(BASE) *FN(MULTI(BASE),range_factor_range)(
887 __isl_give MULTI(BASE) *FN(MULTI(BASE),range_factor_range)(
888 __isl_take MULTI(BASE) *multi)
896 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
898 return FN(MULTI(BASE),free)(multi));
900 space = FN(MULTI(BASE),get_space)(multi);
904 multi = FN(MULTI(BASE),drop_dims)(multi, isl_dim_out, 0, total - keep);
905 multi = FN(MULTI(BASE),reset_space)(multi, space);
912 __isl_give MULTI(BASE) *FN(MULTI(BASE),factor_range)(
912 __isl_give MULTI(BASE) *FN(MULTI(BASE),factor_range)(
913 __isl_take MULTI(BASE) *multi)
921 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
922 "not a product", return FN(MULTI(BASE),free)(multi));
924 space = FN(MULTI(BASE),get_space)(multi);
928 multi = FN(MULTI(BASE),drop_dims)(multi, isl_dim_out, 0, total - keep);
929 multi = FN(MULTI(BASE),reset_space)(multi, space);
943 __isl_give MULTI(BASE) *FN(MULTI(BASE),product_aligned)(
943 __isl_give MULTI(BASE) *FN(MULTI(BASE),product_aligned)(
944 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2)
944 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2)
949 MULTI(BASE) *res;
952 in1 = FN(MULTI(BASE),dim)(multi1, isl_dim_in);
953 in2 = FN(MULTI(BASE),dim)(multi2, isl_dim_in);
954 out1 = FN(MULTI(BASE),dim)(multi1, isl_dim_out);
955 out2 = FN(MULTI(BASE),dim)(multi2, isl_dim_out);
956 space = isl_space_product(FN(MULTI(BASE),get_space)(multi1),
957 FN(MULTI(BASE),get_space)(multi2));
958 res = FN(MULTI(BASE),alloc)(isl_space_copy(space));
962 el = FN(FN(MULTI(BASE),get),BASE)(multi1, i);
962 el = FN(FN(MULTI(BASE),get),BASE)(multi1, i);
965 res = FN(FN(MULTI(BASE),set),BASE)(res, i, el);
965 res = FN(FN(MULTI(BASE),set),BASE)(res, i, el);
969 el = FN(FN(MULTI(BASE),get),BASE)(multi2, i);
969 el = FN(FN(MULTI(BASE),get),BASE)(multi2, i);
972 res = FN(FN(MULTI(BASE),set),BASE)(res, out1 + i, el);
972 res = FN(FN(MULTI(BASE),set),BASE)(res, out1 + i, el);
975 if (FN(MULTI(BASE),has_explicit_domain)(multi1) ||
976 FN(MULTI(BASE),has_explicit_domain)(multi2))
977 res = FN(MULTI(BASE),intersect_explicit_domain_product)(res,
981 FN(MULTI(BASE),free)(multi1);
982 FN(MULTI(BASE),free)(multi2);
989 __isl_give MULTI(BASE) *FN(MULTI(BASE),product)(
989 __isl_give MULTI(BASE) *FN(MULTI(BASE),product)(
990 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2)
990 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2)
992 return FN(MULTI(BASE),align_params_multi_multi_and)(multi1, multi2,
993 &FN(MULTI(BASE),product_aligned));
997 __isl_give MULTI(BASE) *FN(MULTI(BASE),flatten_range)(
997 __isl_give MULTI(BASE) *FN(MULTI(BASE),flatten_range)(
998 __isl_take MULTI(BASE) *multi)
1006 multi = FN(MULTI(BASE),cow)(multi);
1012 return FN(MULTI(BASE),free)(multi);
1020 __isl_give MULTI(BASE) *FN(MULTI(BASE),flat_range_product)(
1020 __isl_give MULTI(BASE) *FN(MULTI(BASE),flat_range_product)(
1021 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2)
1021 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2)
1023 MULTI(BASE) *multi;
1025 multi = FN(MULTI(BASE),range_product)(multi1, multi2);
1026 multi = FN(MULTI(BASE),flatten_range)(multi);
1042 __isl_give MULTI(BASE) *FN(MULTI(BASE),range_splice)(
1042 __isl_give MULTI(BASE) *FN(MULTI(BASE),range_splice)(
1043 __isl_take MULTI(BASE) *multi1, unsigned pos,
1044 __isl_take MULTI(BASE) *multi2)
1046 MULTI(BASE) *res;
1052 dim = FN(MULTI(BASE),dim)(multi1, isl_dim_out);
1054 isl_die(FN(MULTI(BASE),get_ctx)(multi1), isl_error_invalid,
1057 res = FN(MULTI(BASE),copy)(multi1);
1058 res = FN(MULTI(BASE),drop_dims)(res, isl_dim_out, pos, dim - pos);
1059 multi1 = FN(MULTI(BASE),drop_dims)(multi1, isl_dim_out, 0, pos);
1061 res = FN(MULTI(BASE),flat_range_product)(res, multi2);
1062 res = FN(MULTI(BASE),flat_range_product)(res, multi1);
1066 FN(MULTI(BASE),free)(multi1);
1067 FN(MULTI(BASE),free)(multi2);
1095 __isl_give MULTI(BASE) *FN(MULTI(BASE),splice)(
1095 __isl_give MULTI(BASE) *FN(MULTI(BASE),splice)(
1096 __isl_take MULTI(BASE) *multi1, unsigned in_pos, unsigned out_pos,
1097 __isl_take MULTI(BASE) *multi2)
1105 n_in1 = FN(MULTI(BASE),dim)(multi1, isl_dim_in);
1107 isl_die(FN(MULTI(BASE),get_ctx)(multi1), isl_error_invalid,
1110 n_in2 = FN(MULTI(BASE),dim)(multi2, isl_dim_in);
1112 multi1 = FN(MULTI(BASE),insert_dims)(multi1, isl_dim_in, in_pos, n_in2);
1113 multi2 = FN(MULTI(BASE),insert_dims)(multi2, isl_dim_in, n_in2,
1115 multi2 = FN(MULTI(BASE),insert_dims)(multi2, isl_dim_in, 0, in_pos);
1117 return FN(MULTI(BASE),range_splice)(multi1, out_pos, multi2);
1119 FN(MULTI(BASE),free)(multi1);
1120 FN(MULTI(BASE),free)(multi2);
1128 static isl_stat FN(MULTI(BASE),check_equal_space)(
1129 __isl_keep MULTI(BASE) *multi1, __isl_keep MULTI(BASE) *multi2)
1129 __isl_keep MULTI(BASE) *multi1, __isl_keep MULTI(BASE) *multi2)
1140 isl_die(FN(MULTI(BASE),get_ctx)(multi1), isl_error_invalid,
1148 static __isl_give MULTI(BASE) *FN(MULTI(BASE),bin_op)(
1148 static __isl_give MULTI(BASE) *FN(MULTI(BASE),bin_op)(
1149 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2,
1149 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2,
1159 static __isl_give MULTI(BASE) *FN(MULTI(BASE),bin_op)(
1159 static __isl_give MULTI(BASE) *FN(MULTI(BASE),bin_op)(
1160 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2,
1160 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2,
1165 multi1 = FN(MULTI(BASE),cow)(multi1);
1166 if (FN(MULTI(BASE),check_equal_space)(multi1, multi2) < 0)
1176 if (FN(MULTI(BASE),has_explicit_domain)(multi2))
1177 multi1 = FN(MULTI(BASE),intersect_explicit_domain)(multi1,
1180 FN(MULTI(BASE),free)(multi2);
1183 FN(MULTI(BASE),free)(multi1);
1184 FN(MULTI(BASE),free)(multi2);
1192 static __isl_give MULTI(BASE) *FN(MULTI(BASE),add_aligned)(
1192 static __isl_give MULTI(BASE) *FN(MULTI(BASE),add_aligned)(
1193 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2)
1193 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2)
1195 return FN(MULTI(BASE),bin_op)(multi1, multi2, &FN(EL,add));
1200 __isl_give MULTI(BASE) *FN(MULTI(BASE),add)(__isl_take MULTI(BASE) *multi1,
1200 __isl_give MULTI(BASE) *FN(MULTI(BASE),add)(__isl_take MULTI(BASE) *multi1,
1200 __isl_give MULTI(BASE) *FN(MULTI(BASE),add)(__isl_take MULTI(BASE) *multi1,
1201 __isl_take MULTI(BASE) *multi2)
1203 return FN(MULTI(BASE),align_params_multi_multi_and)(multi1, multi2,
1204 &FN(MULTI(BASE),add_aligned));
1211 static __isl_give MULTI(BASE) *FN(MULTI(BASE),sub_aligned)(
1211 static __isl_give MULTI(BASE) *FN(MULTI(BASE),sub_aligned)(
1212 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2)
1212 __isl_take MULTI(BASE) *multi1, __isl_take MULTI(BASE) *multi2)
1214 return FN(MULTI(BASE),bin_op)(multi1, multi2, &FN(EL,sub));
1219 __isl_give MULTI(BASE) *FN(MULTI(BASE),sub)(__isl_take MULTI(BASE) *multi1,
1219 __isl_give MULTI(BASE) *FN(MULTI(BASE),sub)(__isl_take MULTI(BASE) *multi1,
1219 __isl_give MULTI(BASE) *FN(MULTI(BASE),sub)(__isl_take MULTI(BASE) *multi1,
1220 __isl_take MULTI(BASE) *multi2)
1222 return FN(MULTI(BASE),align_params_multi_multi_and)(multi1, multi2,
1223 &FN(MULTI(BASE),sub_aligned));
1228 __isl_give MULTI(BASE) *FN(MULTI(BASE),scale_val)(__isl_take MULTI(BASE) *multi,
1228 __isl_give MULTI(BASE) *FN(MULTI(BASE),scale_val)(__isl_take MULTI(BASE) *multi,
1228 __isl_give MULTI(BASE) *FN(MULTI(BASE),scale_val)(__isl_take MULTI(BASE) *multi,
1245 multi = FN(MULTI(BASE),cow)(multi);
1260 return FN(MULTI(BASE),free)(multi);
1265 __isl_give MULTI(BASE) *FN(MULTI(BASE),scale_down_val)(
1265 __isl_give MULTI(BASE) *FN(MULTI(BASE),scale_down_val)(
1266 __isl_take MULTI(BASE) *multi, __isl_take isl_val *v)
1285 multi = FN(MULTI(BASE),cow)(multi);
1300 return FN(MULTI(BASE),free)(multi);
1306 __isl_give MULTI(BASE) *FN(MULTI(BASE),scale_multi_val)(
1306 __isl_give MULTI(BASE) *FN(MULTI(BASE),scale_multi_val)(
1307 __isl_take MULTI(BASE) *multi, __isl_take isl_multi_val *mv)
1319 multi = FN(MULTI(BASE),cow)(multi);
1336 return FN(MULTI(BASE),free)(multi);
1342 __isl_give MULTI(BASE) *FN(MULTI(BASE),scale_down_multi_val)(
1342 __isl_give MULTI(BASE) *FN(MULTI(BASE),scale_down_multi_val)(
1343 __isl_take MULTI(BASE) *multi, __isl_take isl_multi_val *mv)
1355 multi = FN(MULTI(BASE),cow)(multi);
1372 return FN(MULTI(BASE),free)(multi);
1378 __isl_give MULTI(BASE) *FN(MULTI(BASE),mod_multi_val)(
1378 __isl_give MULTI(BASE) *FN(MULTI(BASE),mod_multi_val)(
1379 __isl_take MULTI(BASE) *multi, __isl_take isl_multi_val *mv)
1391 multi = FN(MULTI(BASE),cow)(multi);
1408 return FN(MULTI(BASE),free)(multi);
1417 __isl_give MULTI(BASE) *FN(MULTI(BASE),move_dims)(__isl_take MULTI(BASE) *multi,
1417 __isl_give MULTI(BASE) *FN(MULTI(BASE),move_dims)(__isl_take MULTI(BASE) *multi,
1417 __isl_give MULTI(BASE) *FN(MULTI(BASE),move_dims)(__isl_take MULTI(BASE) *multi,
1432 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
1434 return FN(MULTI(BASE),free)(multi));
1436 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
1438 return FN(MULTI(BASE),free)(multi));
1440 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
1442 return FN(MULTI(BASE),free)(multi));
1444 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_unsupported,
1446 return FN(MULTI(BASE),free)(multi));
1448 multi = FN(MULTI(BASE),cow)(multi);
1455 return FN(MULTI(BASE),free)(multi);
1456 if (FN(MULTI(BASE),has_explicit_domain)(multi))
1457 multi = FN(MULTI(BASE),move_explicit_domain_dims)(multi,
1467 return FN(MULTI(BASE),free)(multi);
1477 __isl_give MULTI(BASE) *FN(MULTI(BASE),from_range)(
1477 __isl_give MULTI(BASE) *FN(MULTI(BASE),from_range)(
1478 __isl_take MULTI(BASE) *multi)
1485 isl_die(FN(MULTI(BASE),get_ctx)(multi), isl_error_invalid,
1487 return FN(MULTI(BASE),free)(multi));
1489 space = FN(MULTI(BASE),get_space)(multi);
1491 multi = FN(MULTI(BASE),reset_space)(multi, space);
1498 isl_bool FN(MULTI(BASE),plain_is_equal)(__isl_keep MULTI(BASE) *multi1,
1498 isl_bool FN(MULTI(BASE),plain_is_equal)(__isl_keep MULTI(BASE) *multi1,
1499 __isl_keep MULTI(BASE) *multi2)
1518 if (FN(MULTI(BASE),has_explicit_domain)(multi1) ||
1519 FN(MULTI(BASE),has_explicit_domain)(multi2)) {
1520 equal = FN(MULTI(BASE),equal_explicit_domain)(multi1, multi2);
1530 isl_bool FN(MULTI(BASE),involves_nan)(__isl_keep MULTI(BASE) *multi)
1530 isl_bool FN(MULTI(BASE),involves_nan)(__isl_keep MULTI(BASE) *multi)
1553 __isl_give isl_set *FN(MULTI(BASE),domain)(__isl_take MULTI(BASE) *multi)
1553 __isl_give isl_set *FN(MULTI(BASE),domain)(__isl_take MULTI(BASE) *multi)
1561 if (FN(MULTI(BASE),has_explicit_domain)(multi)) {
1562 dom = FN(MULTI(BASE),get_explicit_domain)(multi);
1563 FN(MULTI(BASE),free)(multi);
1567 dom = isl_set_universe(FN(MULTI(BASE),get_domain_space)(multi));
1571 dom_i = FN(EL,domain)(FN(FN(MULTI(BASE),get),BASE)(multi, i));
1571 dom_i = FN(EL,domain)(FN(FN(MULTI(BASE),get),BASE)(multi, i));
1575 FN(MULTI(BASE),free)(multi);
1583 __isl_give MULTI(BASE) *FN(MULTI(BASE),neg)(__isl_take MULTI(BASE) *multi)
1583 __isl_give MULTI(BASE) *FN(MULTI(BASE),neg)(__isl_take MULTI(BASE) *multi)
1583 __isl_give MULTI(BASE) *FN(MULTI(BASE),neg)(__isl_take MULTI(BASE) *multi)
1587 multi = FN(MULTI(BASE),cow)(multi);
1594 return FN(MULTI(BASE),free)(multi);