1 | /* |
2 | * Copyright 2008-2009 Katholieke Universiteit Leuven |
3 | * |
4 | * Use of this software is governed by the MIT license |
5 | * |
6 | * Written by Sven Verdoolaege, K.U.Leuven, Departement |
7 | * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium |
8 | */ |
9 | |
10 | #ifndef ISL_SET_H |
11 | #define ISL_SET_H |
12 | |
13 | #include <isl/id_type.h> |
14 | #include <isl/map_type.h> |
15 | #include <isl/aff_type.h> |
16 | #include <isl/list.h> |
17 | #include <isl/mat.h> |
18 | #include <isl/point.h> |
19 | #include <isl/local_space.h> |
20 | #include <isl/val_type.h> |
21 | #include <isl/stdint.h> |
22 | #include <isl/stride_info.h> |
23 | #include <isl/fixed_box.h> |
24 | |
25 | #if defined(__cplusplus) |
26 | extern "C" { |
27 | #endif |
28 | |
29 | isl_size isl_basic_set_n_dim(__isl_keep isl_basic_set *bset); |
30 | isl_size isl_basic_set_n_param(__isl_keep isl_basic_set *bset); |
31 | isl_size isl_basic_set_total_dim(__isl_keep const isl_basic_set *bset); |
32 | isl_size isl_basic_set_dim(__isl_keep isl_basic_set *bset, |
33 | enum isl_dim_type type); |
34 | |
35 | isl_size isl_set_n_dim(__isl_keep isl_set *set); |
36 | isl_size isl_set_n_param(__isl_keep isl_set *set); |
37 | __isl_export |
38 | isl_size isl_set_tuple_dim(__isl_keep isl_set *set); |
39 | isl_size isl_set_dim(__isl_keep isl_set *set, enum isl_dim_type type); |
40 | |
41 | isl_ctx *isl_basic_set_get_ctx(__isl_keep isl_basic_set *bset); |
42 | isl_ctx *isl_set_get_ctx(__isl_keep isl_set *set); |
43 | __isl_give isl_space *isl_basic_set_get_space(__isl_keep isl_basic_set *bset); |
44 | __isl_export |
45 | __isl_give isl_space *isl_set_get_space(__isl_keep isl_set *set); |
46 | __isl_give isl_set *isl_set_reset_space(__isl_take isl_set *set, |
47 | __isl_take isl_space *space); |
48 | |
49 | __isl_give isl_aff *isl_basic_set_get_div(__isl_keep isl_basic_set *bset, |
50 | int pos); |
51 | |
52 | __isl_give isl_local_space *isl_basic_set_get_local_space( |
53 | __isl_keep isl_basic_set *bset); |
54 | |
55 | const char *isl_basic_set_get_tuple_name(__isl_keep isl_basic_set *bset); |
56 | isl_bool isl_set_has_tuple_name(__isl_keep isl_set *set); |
57 | const char *isl_set_get_tuple_name(__isl_keep isl_set *set); |
58 | __isl_give isl_basic_set *isl_basic_set_set_tuple_name( |
59 | __isl_take isl_basic_set *set, const char *s); |
60 | __isl_give isl_set *isl_set_set_tuple_name(__isl_take isl_set *set, |
61 | const char *s); |
62 | const char *isl_basic_set_get_dim_name(__isl_keep isl_basic_set *bset, |
63 | enum isl_dim_type type, unsigned pos); |
64 | __isl_give isl_basic_set *isl_basic_set_set_dim_name( |
65 | __isl_take isl_basic_set *bset, |
66 | enum isl_dim_type type, unsigned pos, const char *s); |
67 | isl_bool isl_set_has_dim_name(__isl_keep isl_set *set, |
68 | enum isl_dim_type type, unsigned pos); |
69 | const char *isl_set_get_dim_name(__isl_keep isl_set *set, |
70 | enum isl_dim_type type, unsigned pos); |
71 | __isl_give isl_set *isl_set_set_dim_name(__isl_take isl_set *set, |
72 | enum isl_dim_type type, unsigned pos, const char *s); |
73 | |
74 | __isl_give isl_id *isl_basic_set_get_dim_id(__isl_keep isl_basic_set *bset, |
75 | enum isl_dim_type type, unsigned pos); |
76 | __isl_give isl_basic_set *isl_basic_set_set_tuple_id( |
77 | __isl_take isl_basic_set *bset, __isl_take isl_id *id); |
78 | __isl_give isl_set *isl_set_set_dim_id(__isl_take isl_set *set, |
79 | enum isl_dim_type type, unsigned pos, __isl_take isl_id *id); |
80 | isl_bool isl_set_has_dim_id(__isl_keep isl_set *set, |
81 | enum isl_dim_type type, unsigned pos); |
82 | __isl_give isl_id *isl_set_get_dim_id(__isl_keep isl_set *set, |
83 | enum isl_dim_type type, unsigned pos); |
84 | __isl_give isl_set *isl_set_set_tuple_id(__isl_take isl_set *set, |
85 | __isl_take isl_id *id); |
86 | __isl_give isl_set *isl_set_reset_tuple_id(__isl_take isl_set *set); |
87 | isl_bool isl_set_has_tuple_id(__isl_keep isl_set *set); |
88 | __isl_give isl_id *isl_set_get_tuple_id(__isl_keep isl_set *set); |
89 | __isl_give isl_set *isl_set_reset_user(__isl_take isl_set *set); |
90 | |
91 | int isl_set_find_dim_by_id(__isl_keep isl_set *set, enum isl_dim_type type, |
92 | __isl_keep isl_id *id); |
93 | int isl_set_find_dim_by_name(__isl_keep isl_set *set, enum isl_dim_type type, |
94 | const char *name); |
95 | |
96 | int isl_basic_set_is_rational(__isl_keep isl_basic_set *bset); |
97 | |
98 | __isl_null isl_basic_set *isl_basic_set_free(__isl_take isl_basic_set *bset); |
99 | __isl_give isl_basic_set *isl_basic_set_copy(__isl_keep isl_basic_set *bset); |
100 | __isl_give isl_basic_set *isl_basic_set_empty(__isl_take isl_space *space); |
101 | __isl_give isl_basic_set *isl_basic_set_universe(__isl_take isl_space *space); |
102 | __isl_give isl_basic_set *isl_basic_set_nat_universe( |
103 | __isl_take isl_space *space); |
104 | __isl_give isl_basic_set *isl_basic_set_positive_orthant( |
105 | __isl_take isl_space *space); |
106 | void isl_basic_set_print_internal(__isl_keep isl_basic_set *bset, |
107 | FILE *out, int indent); |
108 | __isl_export |
109 | __isl_give isl_basic_set *isl_basic_set_intersect( |
110 | __isl_take isl_basic_set *bset1, |
111 | __isl_take isl_basic_set *bset2); |
112 | __isl_export |
113 | __isl_give isl_basic_set *isl_basic_set_intersect_params( |
114 | __isl_take isl_basic_set *bset1, __isl_take isl_basic_set *bset2); |
115 | __isl_export |
116 | __isl_give isl_basic_set *isl_basic_set_apply( |
117 | __isl_take isl_basic_set *bset, |
118 | __isl_take isl_basic_map *bmap); |
119 | __isl_give isl_basic_set *isl_basic_set_preimage_multi_aff( |
120 | __isl_take isl_basic_set *bset, __isl_take isl_multi_aff *ma); |
121 | __isl_export |
122 | __isl_give isl_basic_set *isl_basic_set_affine_hull( |
123 | __isl_take isl_basic_set *bset); |
124 | __isl_give isl_basic_set *isl_basic_set_remove_dims( |
125 | __isl_take isl_basic_set *bset, |
126 | enum isl_dim_type type, unsigned first, unsigned n); |
127 | __isl_export |
128 | __isl_give isl_basic_set *isl_basic_set_sample(__isl_take isl_basic_set *bset); |
129 | __isl_export |
130 | __isl_give isl_basic_set *isl_basic_set_detect_equalities( |
131 | __isl_take isl_basic_set *bset); |
132 | __isl_give isl_basic_set *isl_basic_set_remove_redundancies( |
133 | __isl_take isl_basic_set *bset); |
134 | __isl_give isl_set *isl_set_remove_redundancies(__isl_take isl_set *set); |
135 | __isl_give isl_basic_set *isl_basic_set_list_intersect( |
136 | __isl_take struct isl_basic_set_list *list); |
137 | |
138 | __isl_give isl_set *isl_set_list_union(__isl_take isl_set_list *list); |
139 | |
140 | __isl_give isl_basic_set *isl_basic_set_read_from_file(isl_ctx *ctx, |
141 | FILE *input); |
142 | __isl_constructor |
143 | __isl_give isl_basic_set *isl_basic_set_read_from_str(isl_ctx *ctx, |
144 | const char *str); |
145 | __isl_give isl_set *isl_set_read_from_file(isl_ctx *ctx, FILE *input); |
146 | __isl_constructor |
147 | __isl_give isl_set *isl_set_read_from_str(isl_ctx *ctx, const char *str); |
148 | void isl_basic_set_dump(__isl_keep isl_basic_set *bset); |
149 | void isl_set_dump(__isl_keep isl_set *set); |
150 | __isl_give isl_printer *isl_printer_print_basic_set( |
151 | __isl_take isl_printer *printer, __isl_keep isl_basic_set *bset); |
152 | __isl_give isl_printer *isl_printer_print_set(__isl_take isl_printer *printer, |
153 | __isl_keep isl_set *map); |
154 | __isl_give isl_basic_set *isl_basic_set_fix_si(__isl_take isl_basic_set *bset, |
155 | enum isl_dim_type type, unsigned pos, int value); |
156 | __isl_give isl_basic_set *isl_basic_set_fix_val(__isl_take isl_basic_set *bset, |
157 | enum isl_dim_type type, unsigned pos, __isl_take isl_val *v); |
158 | __isl_give isl_set *isl_set_fix_si(__isl_take isl_set *set, |
159 | enum isl_dim_type type, unsigned pos, int value); |
160 | __isl_give isl_set *isl_set_lower_bound_si(__isl_take isl_set *set, |
161 | enum isl_dim_type type, unsigned pos, int value); |
162 | __isl_give isl_basic_set *isl_basic_set_lower_bound_val( |
163 | __isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned pos, |
164 | __isl_take isl_val *value); |
165 | __isl_give isl_set *isl_set_lower_bound_val(__isl_take isl_set *set, |
166 | enum isl_dim_type type, unsigned pos, __isl_take isl_val *value); |
167 | __isl_give isl_set *isl_set_upper_bound_si(__isl_take isl_set *set, |
168 | enum isl_dim_type type, unsigned pos, int value); |
169 | __isl_give isl_basic_set *isl_basic_set_upper_bound_val( |
170 | __isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned pos, |
171 | __isl_take isl_val *value); |
172 | __isl_give isl_set *isl_set_upper_bound_val(__isl_take isl_set *set, |
173 | enum isl_dim_type type, unsigned pos, __isl_take isl_val *value); |
174 | __isl_overload |
175 | __isl_give isl_set *isl_set_lower_bound_multi_val(__isl_take isl_set *set, |
176 | __isl_take isl_multi_val *lower); |
177 | __isl_overload |
178 | __isl_give isl_set *isl_set_upper_bound_multi_val(__isl_take isl_set *set, |
179 | __isl_take isl_multi_val *upper); |
180 | __isl_overload |
181 | __isl_give isl_set *isl_set_lower_bound_multi_pw_aff(__isl_take isl_set *set, |
182 | __isl_take isl_multi_pw_aff *lower); |
183 | __isl_overload |
184 | __isl_give isl_set *isl_set_upper_bound_multi_pw_aff(__isl_take isl_set *set, |
185 | __isl_take isl_multi_pw_aff *upper); |
186 | |
187 | __isl_give isl_set *isl_set_equate(__isl_take isl_set *set, |
188 | enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2); |
189 | |
190 | __isl_export |
191 | isl_bool isl_basic_set_is_equal(__isl_keep isl_basic_set *bset1, |
192 | __isl_keep isl_basic_set *bset2); |
193 | isl_bool isl_basic_set_is_disjoint(__isl_keep isl_basic_set *bset1, |
194 | __isl_keep isl_basic_set *bset2); |
195 | |
196 | __isl_give isl_set *isl_basic_set_partial_lexmin( |
197 | __isl_take isl_basic_set *bset, __isl_take isl_basic_set *dom, |
198 | __isl_give isl_set **empty); |
199 | __isl_give isl_set *isl_basic_set_partial_lexmax( |
200 | __isl_take isl_basic_set *bset, __isl_take isl_basic_set *dom, |
201 | __isl_give isl_set **empty); |
202 | __isl_give isl_set *isl_set_partial_lexmin( |
203 | __isl_take isl_set *set, __isl_take isl_set *dom, |
204 | __isl_give isl_set **empty); |
205 | __isl_give isl_set *isl_set_partial_lexmax( |
206 | __isl_take isl_set *set, __isl_take isl_set *dom, |
207 | __isl_give isl_set **empty); |
208 | __isl_export |
209 | __isl_give isl_set *isl_basic_set_lexmin(__isl_take isl_basic_set *bset); |
210 | __isl_export |
211 | __isl_give isl_set *isl_basic_set_lexmax(__isl_take isl_basic_set *bset); |
212 | __isl_export |
213 | __isl_give isl_set *isl_set_lexmin(__isl_take isl_set *set); |
214 | __isl_export |
215 | __isl_give isl_set *isl_set_lexmax(__isl_take isl_set *set); |
216 | __isl_give isl_pw_multi_aff *isl_basic_set_partial_lexmin_pw_multi_aff( |
217 | __isl_take isl_basic_set *bset, __isl_take isl_basic_set *dom, |
218 | __isl_give isl_set **empty); |
219 | __isl_give isl_pw_multi_aff *isl_basic_set_partial_lexmax_pw_multi_aff( |
220 | __isl_take isl_basic_set *bset, __isl_take isl_basic_set *dom, |
221 | __isl_give isl_set **empty); |
222 | __isl_export |
223 | __isl_give isl_pw_multi_aff *isl_set_lexmin_pw_multi_aff( |
224 | __isl_take isl_set *set); |
225 | __isl_export |
226 | __isl_give isl_pw_multi_aff *isl_set_lexmax_pw_multi_aff( |
227 | __isl_take isl_set *set); |
228 | __isl_export |
229 | __isl_give isl_multi_pw_aff *isl_set_min_multi_pw_aff(__isl_take isl_set *set); |
230 | __isl_export |
231 | __isl_give isl_multi_pw_aff *isl_set_max_multi_pw_aff(__isl_take isl_set *set); |
232 | |
233 | __isl_export |
234 | __isl_give isl_set *isl_basic_set_union( |
235 | __isl_take isl_basic_set *bset1, |
236 | __isl_take isl_basic_set *bset2); |
237 | |
238 | int isl_basic_set_compare_at(__isl_keep isl_basic_set *bset1, |
239 | __isl_keep isl_basic_set *bset2, int pos); |
240 | int isl_set_follows_at(__isl_keep isl_set *set1, |
241 | __isl_keep isl_set *set2, int pos); |
242 | |
243 | __isl_export |
244 | __isl_give isl_basic_set *isl_basic_set_params(__isl_take isl_basic_set *bset); |
245 | __isl_give isl_basic_set *isl_basic_set_from_params( |
246 | __isl_take isl_basic_set *bset); |
247 | __isl_export |
248 | __isl_give isl_set *isl_set_params(__isl_take isl_set *set); |
249 | __isl_give isl_set *isl_set_from_params(__isl_take isl_set *set); |
250 | |
251 | __isl_export |
252 | __isl_give isl_set *isl_set_bind(__isl_take isl_set *set, |
253 | __isl_take isl_multi_id *tuple); |
254 | __isl_export |
255 | __isl_give isl_set *isl_set_unbind_params(__isl_take isl_set *set, |
256 | __isl_take isl_multi_id *tuple); |
257 | __isl_export |
258 | __isl_give isl_map *isl_set_unbind_params_insert_domain( |
259 | __isl_take isl_set *set, __isl_take isl_multi_id *domain); |
260 | |
261 | isl_stat isl_basic_set_dims_get_sign(__isl_keep isl_basic_set *bset, |
262 | enum isl_dim_type type, unsigned pos, unsigned n, int *signs); |
263 | |
264 | isl_bool isl_basic_set_plain_is_universe(__isl_keep isl_basic_set *bset); |
265 | isl_bool isl_basic_set_is_universe(__isl_keep isl_basic_set *bset); |
266 | isl_bool isl_basic_set_plain_is_empty(__isl_keep isl_basic_set *bset); |
267 | __isl_export |
268 | isl_bool isl_basic_set_is_empty(__isl_keep isl_basic_set *bset); |
269 | isl_bool isl_basic_set_is_bounded(__isl_keep isl_basic_set *bset); |
270 | __isl_export |
271 | isl_bool isl_basic_set_is_subset(__isl_keep isl_basic_set *bset1, |
272 | __isl_keep isl_basic_set *bset2); |
273 | isl_bool isl_basic_set_plain_is_equal(__isl_keep isl_basic_set *bset1, |
274 | __isl_keep isl_basic_set *bset2); |
275 | |
276 | __isl_export |
277 | __isl_give isl_set *isl_set_empty(__isl_take isl_space *space); |
278 | __isl_export |
279 | __isl_give isl_set *isl_set_universe(__isl_take isl_space *space); |
280 | __isl_export |
281 | __isl_give isl_set *isl_space_universe_set(__isl_take isl_space *space); |
282 | __isl_give isl_set *isl_set_nat_universe(__isl_take isl_space *space); |
283 | __isl_give isl_set *isl_set_copy(__isl_keep isl_set *set); |
284 | __isl_null isl_set *isl_set_free(__isl_take isl_set *set); |
285 | __isl_export |
286 | __isl_give isl_set *isl_basic_set_to_set(__isl_take isl_basic_set *bset); |
287 | __isl_constructor |
288 | __isl_give isl_set *isl_set_from_basic_set(__isl_take isl_basic_set *bset); |
289 | __isl_export |
290 | __isl_give isl_basic_set *isl_set_sample(__isl_take isl_set *set); |
291 | __isl_export |
292 | __isl_give isl_point *isl_basic_set_sample_point(__isl_take isl_basic_set *bset); |
293 | __isl_export |
294 | __isl_give isl_point *isl_set_sample_point(__isl_take isl_set *set); |
295 | __isl_export |
296 | __isl_give isl_set *isl_set_detect_equalities(__isl_take isl_set *set); |
297 | __isl_export |
298 | __isl_give isl_basic_set *isl_set_affine_hull(__isl_take isl_set *set); |
299 | __isl_give isl_basic_set *isl_set_convex_hull(__isl_take isl_set *set); |
300 | __isl_export |
301 | __isl_give isl_basic_set *isl_set_polyhedral_hull(__isl_take isl_set *set); |
302 | __isl_give isl_basic_set *isl_set_simple_hull(__isl_take isl_set *set); |
303 | __isl_export |
304 | __isl_give isl_basic_set *isl_set_unshifted_simple_hull( |
305 | __isl_take isl_set *set); |
306 | __isl_give isl_basic_set *isl_set_plain_unshifted_simple_hull( |
307 | __isl_take isl_set *set); |
308 | __isl_give isl_basic_set *isl_set_unshifted_simple_hull_from_set_list( |
309 | __isl_take isl_set *set, __isl_take isl_set_list *list); |
310 | __isl_give isl_basic_set *isl_set_bounded_simple_hull(__isl_take isl_set *set); |
311 | |
312 | __isl_give isl_set *isl_set_union_disjoint( |
313 | __isl_take isl_set *set1, __isl_take isl_set *set2); |
314 | __isl_export |
315 | __isl_give isl_set *isl_set_union( |
316 | __isl_take isl_set *set1, |
317 | __isl_take isl_set *set2); |
318 | __isl_export |
319 | __isl_give isl_set *isl_set_product(__isl_take isl_set *set1, |
320 | __isl_take isl_set *set2); |
321 | __isl_give isl_basic_set *isl_basic_set_flat_product( |
322 | __isl_take isl_basic_set *bset1, __isl_take isl_basic_set *bset2); |
323 | __isl_give isl_set *isl_set_flat_product(__isl_take isl_set *set1, |
324 | __isl_take isl_set *set2); |
325 | __isl_export |
326 | __isl_give isl_set *isl_set_intersect( |
327 | __isl_take isl_set *set1, |
328 | __isl_take isl_set *set2); |
329 | __isl_export |
330 | __isl_give isl_set *isl_set_intersect_params(__isl_take isl_set *set, |
331 | __isl_take isl_set *params); |
332 | __isl_give isl_set *isl_set_intersect_factor_domain(__isl_take isl_set *set, |
333 | __isl_take isl_set *domain); |
334 | __isl_give isl_set *isl_set_intersect_factor_range(__isl_take isl_set *set, |
335 | __isl_take isl_set *range); |
336 | __isl_export |
337 | __isl_give isl_set *isl_set_subtract( |
338 | __isl_take isl_set *set1, |
339 | __isl_take isl_set *set2); |
340 | __isl_export |
341 | __isl_give isl_set *isl_set_complement(__isl_take isl_set *set); |
342 | __isl_export |
343 | __isl_give isl_set *isl_set_apply( |
344 | __isl_take isl_set *set, |
345 | __isl_take isl_map *map); |
346 | __isl_overload |
347 | __isl_give isl_set *isl_set_preimage_multi_aff(__isl_take isl_set *set, |
348 | __isl_take isl_multi_aff *ma); |
349 | __isl_overload |
350 | __isl_give isl_set *isl_set_preimage_pw_multi_aff(__isl_take isl_set *set, |
351 | __isl_take isl_pw_multi_aff *pma); |
352 | __isl_overload |
353 | __isl_give isl_set *isl_set_preimage_multi_pw_aff(__isl_take isl_set *set, |
354 | __isl_take isl_multi_pw_aff *mpa); |
355 | __isl_give isl_set *isl_set_fix_val(__isl_take isl_set *set, |
356 | enum isl_dim_type type, unsigned pos, __isl_take isl_val *v); |
357 | __isl_give isl_set *isl_set_fix_dim_si(__isl_take isl_set *set, |
358 | unsigned dim, int value); |
359 | __isl_give isl_basic_set *isl_basic_set_insert_dims( |
360 | __isl_take isl_basic_set *bset, |
361 | enum isl_dim_type type, unsigned pos, unsigned n); |
362 | __isl_give isl_set *isl_set_insert_dims(__isl_take isl_set *set, |
363 | enum isl_dim_type type, unsigned pos, unsigned n); |
364 | __isl_give isl_basic_set *isl_basic_set_add_dims(__isl_take isl_basic_set *bset, |
365 | enum isl_dim_type type, unsigned n); |
366 | __isl_give isl_set *isl_set_add_dims(__isl_take isl_set *set, |
367 | enum isl_dim_type type, unsigned n); |
368 | __isl_give isl_basic_set *isl_basic_set_move_dims(__isl_take isl_basic_set *bset, |
369 | enum isl_dim_type dst_type, unsigned dst_pos, |
370 | enum isl_dim_type src_type, unsigned src_pos, unsigned n); |
371 | __isl_give isl_set *isl_set_move_dims(__isl_take isl_set *set, |
372 | enum isl_dim_type dst_type, unsigned dst_pos, |
373 | enum isl_dim_type src_type, unsigned src_pos, unsigned n); |
374 | __isl_give isl_basic_set *isl_basic_set_project_out( |
375 | __isl_take isl_basic_set *bset, |
376 | enum isl_dim_type type, unsigned first, unsigned n); |
377 | __isl_overload |
378 | __isl_give isl_set *isl_set_project_out_param_id(__isl_take isl_set *set, |
379 | __isl_take isl_id *id); |
380 | __isl_overload |
381 | __isl_give isl_set *isl_set_project_out_param_id_list(__isl_take isl_set *set, |
382 | __isl_take isl_id_list *list); |
383 | __isl_give isl_set *isl_set_project_out(__isl_take isl_set *set, |
384 | enum isl_dim_type type, unsigned first, unsigned n); |
385 | __isl_export |
386 | __isl_give isl_set *isl_set_project_out_all_params(__isl_take isl_set *set); |
387 | __isl_give isl_map *isl_set_project_onto_map(__isl_take isl_set *set, |
388 | enum isl_dim_type type, unsigned first, unsigned n); |
389 | __isl_give isl_basic_set *isl_basic_set_remove_divs( |
390 | __isl_take isl_basic_set *bset); |
391 | __isl_give isl_basic_set *isl_basic_set_eliminate( |
392 | __isl_take isl_basic_set *bset, |
393 | enum isl_dim_type type, unsigned first, unsigned n); |
394 | __isl_give isl_set *isl_set_eliminate(__isl_take isl_set *set, |
395 | enum isl_dim_type type, unsigned first, unsigned n); |
396 | __isl_give isl_set *isl_set_eliminate_dims(__isl_take isl_set *set, |
397 | unsigned first, unsigned n); |
398 | __isl_give isl_set *isl_set_remove_dims(__isl_take isl_set *bset, |
399 | enum isl_dim_type type, unsigned first, unsigned n); |
400 | __isl_give isl_basic_set *isl_basic_set_remove_divs_involving_dims( |
401 | __isl_take isl_basic_set *bset, |
402 | enum isl_dim_type type, unsigned first, unsigned n); |
403 | __isl_give isl_set *isl_set_remove_divs_involving_dims(__isl_take isl_set *set, |
404 | enum isl_dim_type type, unsigned first, unsigned n); |
405 | __isl_give isl_basic_set *isl_basic_set_remove_unknown_divs( |
406 | __isl_take isl_basic_set *bset); |
407 | __isl_give isl_set *isl_set_remove_unknown_divs(__isl_take isl_set *set); |
408 | __isl_give isl_set *isl_set_remove_divs(__isl_take isl_set *set); |
409 | __isl_give isl_set *isl_set_split_dims(__isl_take isl_set *set, |
410 | enum isl_dim_type type, unsigned first, unsigned n); |
411 | |
412 | __isl_give isl_basic_set *isl_basic_set_drop_constraints_involving_dims( |
413 | __isl_take isl_basic_set *bset, |
414 | enum isl_dim_type type, unsigned first, unsigned n); |
415 | __isl_give isl_basic_set *isl_basic_set_drop_constraints_not_involving_dims( |
416 | __isl_take isl_basic_set *bset, |
417 | enum isl_dim_type type, unsigned first, unsigned n); |
418 | __isl_give isl_set *isl_set_drop_constraints_involving_dims( |
419 | __isl_take isl_set *set, |
420 | enum isl_dim_type type, unsigned first, unsigned n); |
421 | __isl_give isl_set *isl_set_drop_constraints_not_involving_dims( |
422 | __isl_take isl_set *set, |
423 | enum isl_dim_type type, unsigned first, unsigned n); |
424 | |
425 | __isl_export |
426 | isl_bool isl_set_involves_locals(__isl_keep isl_set *set); |
427 | |
428 | isl_bool isl_basic_set_involves_dims(__isl_keep isl_basic_set *bset, |
429 | enum isl_dim_type type, unsigned first, unsigned n); |
430 | isl_bool isl_set_involves_dims(__isl_keep isl_set *set, |
431 | enum isl_dim_type type, unsigned first, unsigned n); |
432 | |
433 | void isl_set_print_internal(__isl_keep isl_set *set, FILE *out, int indent); |
434 | isl_bool isl_set_plain_is_empty(__isl_keep isl_set *set); |
435 | isl_bool isl_set_plain_is_universe(__isl_keep isl_set *set); |
436 | isl_bool isl_set_is_params(__isl_keep isl_set *set); |
437 | __isl_export |
438 | isl_bool isl_set_is_empty(__isl_keep isl_set *set); |
439 | isl_bool isl_set_is_bounded(__isl_keep isl_set *set); |
440 | __isl_export |
441 | isl_bool isl_set_is_subset(__isl_keep isl_set *set1, __isl_keep isl_set *set2); |
442 | __isl_export |
443 | isl_bool isl_set_is_strict_subset(__isl_keep isl_set *set1, |
444 | __isl_keep isl_set *set2); |
445 | __isl_export |
446 | isl_bool isl_set_is_equal(__isl_keep isl_set *set1, __isl_keep isl_set *set2); |
447 | __isl_export |
448 | isl_bool isl_set_is_disjoint(__isl_keep isl_set *set1, |
449 | __isl_keep isl_set *set2); |
450 | __isl_export |
451 | isl_bool isl_set_is_singleton(__isl_keep isl_set *set); |
452 | isl_bool isl_set_is_box(__isl_keep isl_set *set); |
453 | isl_bool isl_set_has_equal_space(__isl_keep isl_set *set1, |
454 | __isl_keep isl_set *set2); |
455 | |
456 | __isl_give isl_set *isl_set_sum(__isl_take isl_set *set1, |
457 | __isl_take isl_set *set2); |
458 | __isl_give isl_basic_set *isl_basic_set_neg(__isl_take isl_basic_set *bset); |
459 | __isl_give isl_set *isl_set_neg(__isl_take isl_set *set); |
460 | |
461 | __isl_give isl_set *isl_set_make_disjoint(__isl_take isl_set *set); |
462 | __isl_give isl_set *isl_basic_set_compute_divs(__isl_take isl_basic_set *bset); |
463 | __isl_give isl_set *isl_set_compute_divs(__isl_take isl_set *set); |
464 | ISL_DEPRECATED |
465 | __isl_give isl_set *isl_set_align_divs(__isl_take isl_set *set); |
466 | |
467 | __isl_export |
468 | __isl_give isl_multi_val *isl_set_get_plain_multi_val_if_fixed( |
469 | __isl_keep isl_set *set); |
470 | __isl_give isl_val *isl_set_plain_get_val_if_fixed(__isl_keep isl_set *set, |
471 | enum isl_dim_type type, unsigned pos); |
472 | isl_bool isl_set_dim_is_bounded(__isl_keep isl_set *set, |
473 | enum isl_dim_type type, unsigned pos); |
474 | isl_bool isl_set_dim_has_lower_bound(__isl_keep isl_set *set, |
475 | enum isl_dim_type type, unsigned pos); |
476 | isl_bool isl_set_dim_has_upper_bound(__isl_keep isl_set *set, |
477 | enum isl_dim_type type, unsigned pos); |
478 | isl_bool isl_set_dim_has_any_lower_bound(__isl_keep isl_set *set, |
479 | enum isl_dim_type type, unsigned pos); |
480 | isl_bool isl_set_dim_has_any_upper_bound(__isl_keep isl_set *set, |
481 | enum isl_dim_type type, unsigned pos); |
482 | |
483 | __isl_export |
484 | __isl_give isl_basic_set *isl_basic_set_gist(__isl_take isl_basic_set *bset, |
485 | __isl_take isl_basic_set *context); |
486 | __isl_give isl_set *isl_set_gist_basic_set(__isl_take isl_set *set, |
487 | __isl_take isl_basic_set *context); |
488 | __isl_export |
489 | __isl_give isl_set *isl_set_gist(__isl_take isl_set *set, |
490 | __isl_take isl_set *context); |
491 | __isl_export |
492 | __isl_give isl_set *isl_set_gist_params(__isl_take isl_set *set, |
493 | __isl_take isl_set *context); |
494 | isl_stat isl_set_dim_residue_class_val(__isl_keep isl_set *set, |
495 | int pos, __isl_give isl_val **modulo, __isl_give isl_val **residue); |
496 | |
497 | __isl_give isl_stride_info *isl_set_get_stride_info(__isl_keep isl_set *set, |
498 | int pos); |
499 | __isl_export |
500 | __isl_give isl_val *isl_set_get_stride(__isl_keep isl_set *set, int pos); |
501 | __isl_export |
502 | __isl_give isl_fixed_box *isl_set_get_lattice_tile(__isl_keep isl_set *set); |
503 | __isl_export |
504 | __isl_give isl_fixed_box *isl_set_get_simple_fixed_box_hull( |
505 | __isl_keep isl_set *set); |
506 | |
507 | __isl_export |
508 | __isl_give isl_set *isl_set_coalesce(__isl_take isl_set *set); |
509 | |
510 | int isl_set_plain_cmp(__isl_keep isl_set *set1, __isl_keep isl_set *set2); |
511 | isl_bool isl_set_plain_is_equal(__isl_keep isl_set *set1, |
512 | __isl_keep isl_set *set2); |
513 | isl_bool isl_set_plain_is_disjoint(__isl_keep isl_set *set1, |
514 | __isl_keep isl_set *set2); |
515 | |
516 | uint32_t isl_set_get_hash(__isl_keep isl_set *set); |
517 | |
518 | __isl_export |
519 | isl_size isl_set_n_basic_set(__isl_keep isl_set *set); |
520 | __isl_export |
521 | isl_stat isl_set_foreach_basic_set(__isl_keep isl_set *set, |
522 | isl_stat (*fn)(__isl_take isl_basic_set *bset, void *user), void *user); |
523 | __isl_give isl_basic_set_list *isl_set_get_basic_set_list( |
524 | __isl_keep isl_set *set); |
525 | |
526 | __isl_export |
527 | isl_stat isl_set_foreach_point(__isl_keep isl_set *set, |
528 | isl_stat (*fn)(__isl_take isl_point *pnt, void *user), void *user); |
529 | __isl_give isl_val *isl_set_count_val(__isl_keep isl_set *set); |
530 | |
531 | __isl_constructor |
532 | __isl_give isl_basic_set *isl_basic_set_from_point(__isl_take isl_point *pnt); |
533 | __isl_export |
534 | __isl_give isl_set *isl_point_to_set(__isl_take isl_point *pnt); |
535 | __isl_constructor |
536 | __isl_give isl_set *isl_set_from_point(__isl_take isl_point *pnt); |
537 | __isl_give isl_basic_set *isl_basic_set_box_from_points( |
538 | __isl_take isl_point *pnt1, __isl_take isl_point *pnt2); |
539 | __isl_give isl_set *isl_set_box_from_points(__isl_take isl_point *pnt1, |
540 | __isl_take isl_point *pnt2); |
541 | |
542 | __isl_give isl_basic_set *isl_basic_set_lift(__isl_take isl_basic_set *bset); |
543 | __isl_give isl_set *isl_set_lift(__isl_take isl_set *set); |
544 | |
545 | __isl_give isl_map *isl_set_lex_le_set(__isl_take isl_set *set1, |
546 | __isl_take isl_set *set2); |
547 | __isl_give isl_map *isl_set_lex_lt_set(__isl_take isl_set *set1, |
548 | __isl_take isl_set *set2); |
549 | __isl_give isl_map *isl_set_lex_ge_set(__isl_take isl_set *set1, |
550 | __isl_take isl_set *set2); |
551 | __isl_give isl_map *isl_set_lex_gt_set(__isl_take isl_set *set1, |
552 | __isl_take isl_set *set2); |
553 | |
554 | int isl_set_size(__isl_keep isl_set *set); |
555 | |
556 | __isl_give isl_basic_set *isl_basic_set_align_params( |
557 | __isl_take isl_basic_set *bset, __isl_take isl_space *model); |
558 | __isl_give isl_set *isl_set_align_params(__isl_take isl_set *set, |
559 | __isl_take isl_space *model); |
560 | __isl_give isl_basic_set *isl_basic_set_drop_unused_params( |
561 | __isl_take isl_basic_set *bset); |
562 | __isl_give isl_set *isl_set_drop_unused_params(__isl_take isl_set *set); |
563 | |
564 | __isl_give isl_mat *isl_basic_set_equalities_matrix( |
565 | __isl_keep isl_basic_set *bset, enum isl_dim_type c1, |
566 | enum isl_dim_type c2, enum isl_dim_type c3, enum isl_dim_type c4); |
567 | __isl_give isl_mat *isl_basic_set_inequalities_matrix( |
568 | __isl_keep isl_basic_set *bset, enum isl_dim_type c1, |
569 | enum isl_dim_type c2, enum isl_dim_type c3, enum isl_dim_type c4); |
570 | __isl_give isl_basic_set *isl_basic_set_from_constraint_matrices( |
571 | __isl_take isl_space *space, |
572 | __isl_take isl_mat *eq, __isl_take isl_mat *ineq, enum isl_dim_type c1, |
573 | enum isl_dim_type c2, enum isl_dim_type c3, enum isl_dim_type c4); |
574 | |
575 | __isl_give isl_basic_set *isl_basic_set_from_multi_aff( |
576 | __isl_take isl_multi_aff *ma); |
577 | |
578 | __isl_export |
579 | __isl_give isl_set *isl_multi_aff_as_set(__isl_take isl_multi_aff *ma); |
580 | __isl_give isl_set *isl_set_from_multi_aff(__isl_take isl_multi_aff *ma); |
581 | |
582 | __isl_give isl_mat *isl_basic_set_reduced_basis(__isl_keep isl_basic_set *bset); |
583 | |
584 | __isl_give isl_basic_set *isl_basic_set_coefficients( |
585 | __isl_take isl_basic_set *bset); |
586 | __isl_give isl_basic_set_list *isl_basic_set_list_coefficients( |
587 | __isl_take isl_basic_set_list *list); |
588 | __isl_give isl_basic_set *isl_set_coefficients(__isl_take isl_set *set); |
589 | __isl_give isl_basic_set *isl_basic_set_solutions( |
590 | __isl_take isl_basic_set *bset); |
591 | __isl_give isl_basic_set *isl_set_solutions(__isl_take isl_set *set); |
592 | |
593 | __isl_give isl_pw_aff *isl_set_dim_max(__isl_take isl_set *set, int pos); |
594 | __isl_give isl_pw_aff *isl_set_dim_min(__isl_take isl_set *set, int pos); |
595 | |
596 | __isl_give char *isl_basic_set_to_str(__isl_keep isl_basic_set *bset); |
597 | __isl_give char *isl_set_to_str(__isl_keep isl_set *set); |
598 | |
599 | #if defined(__cplusplus) |
600 | } |
601 | #endif |
602 | |
603 | #endif |
604 | |