source: Daodan/MSYS2/mingw32/include/isl/union_map.h@ 1174

Last change on this file since 1174 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 14.8 KB
Line 
1#ifndef ISL_UNION_MAP_H
2#define ISL_UNION_MAP_H
3
4#include <isl/stdint.h>
5#include <isl/space_type.h>
6#include <isl/aff_type.h>
7#include <isl/map_type.h>
8#include <isl/union_map_type.h>
9#include <isl/printer.h>
10#include <isl/val_type.h>
11
12#if defined(__cplusplus)
13extern "C" {
14#endif
15
16isl_size isl_union_map_dim(__isl_keep isl_union_map *umap,
17 enum isl_dim_type type);
18isl_bool isl_union_map_involves_dims(__isl_keep isl_union_map *umap,
19 enum isl_dim_type type, unsigned first, unsigned n);
20__isl_give isl_id *isl_union_map_get_dim_id(__isl_keep isl_union_map *umap,
21 enum isl_dim_type type, unsigned pos);
22
23__isl_constructor
24__isl_give isl_union_map *isl_union_map_from_basic_map(
25 __isl_take isl_basic_map *bmap);
26__isl_export
27__isl_give isl_union_map *isl_map_to_union_map(__isl_take isl_map *map);
28__isl_constructor
29__isl_give isl_union_map *isl_union_map_from_map(__isl_take isl_map *map);
30__isl_overload
31__isl_give isl_union_map *isl_union_map_empty_ctx(isl_ctx *ctx);
32__isl_give isl_union_map *isl_union_map_empty_space(
33 __isl_take isl_space *space);
34__isl_give isl_union_map *isl_union_map_empty(__isl_take isl_space *space);
35__isl_give isl_union_map *isl_union_map_copy(__isl_keep isl_union_map *umap);
36__isl_null isl_union_map *isl_union_map_free(__isl_take isl_union_map *umap);
37
38isl_ctx *isl_union_map_get_ctx(__isl_keep isl_union_map *umap);
39__isl_export
40__isl_give isl_space *isl_union_map_get_space(__isl_keep isl_union_map *umap);
41
42__isl_give isl_union_map *isl_union_map_reset_user(
43 __isl_take isl_union_map *umap);
44
45int isl_union_map_find_dim_by_name(__isl_keep isl_union_map *umap,
46 enum isl_dim_type type, const char *name);
47
48__isl_export
49__isl_give isl_union_map *isl_union_map_universe(
50 __isl_take isl_union_map *umap);
51__isl_give isl_set *isl_union_map_params(__isl_take isl_union_map *umap);
52__isl_export
53__isl_give isl_union_set *isl_union_map_domain(__isl_take isl_union_map *umap);
54__isl_export
55__isl_give isl_union_set *isl_union_map_range(__isl_take isl_union_map *umap);
56__isl_export
57__isl_give isl_union_map *isl_union_map_domain_map(
58 __isl_take isl_union_map *umap);
59__isl_export
60__isl_give isl_union_pw_multi_aff *isl_union_map_domain_map_union_pw_multi_aff(
61 __isl_take isl_union_map *umap);
62__isl_export
63__isl_give isl_union_map *isl_union_map_range_map(
64 __isl_take isl_union_map *umap);
65__isl_give isl_union_map *isl_union_set_wrapped_domain_map(
66 __isl_take isl_union_set *uset);
67__isl_export
68__isl_give isl_union_map *isl_union_map_from_domain(
69 __isl_take isl_union_set *uset);
70__isl_export
71__isl_give isl_union_map *isl_union_map_from_range(
72 __isl_take isl_union_set *uset);
73
74__isl_export
75__isl_give isl_union_map *isl_union_map_affine_hull(
76 __isl_take isl_union_map *umap);
77__isl_export
78__isl_give isl_union_map *isl_union_map_polyhedral_hull(
79 __isl_take isl_union_map *umap);
80__isl_give isl_union_map *isl_union_map_remove_redundancies(
81 __isl_take isl_union_map *umap);
82__isl_give isl_union_map *isl_union_map_simple_hull(
83 __isl_take isl_union_map *umap);
84__isl_export
85__isl_give isl_union_map *isl_union_map_coalesce(
86 __isl_take isl_union_map *umap);
87__isl_export
88__isl_give isl_union_map *isl_union_map_compute_divs(
89 __isl_take isl_union_map *umap);
90__isl_export
91__isl_give isl_union_map *isl_union_map_lexmin(__isl_take isl_union_map *umap);
92__isl_export
93__isl_give isl_union_map *isl_union_map_lexmax(__isl_take isl_union_map *umap);
94
95__isl_give isl_union_map *isl_union_map_add_map(__isl_take isl_union_map *umap,
96 __isl_take isl_map *map);
97__isl_export
98__isl_give isl_union_map *isl_union_map_union(__isl_take isl_union_map *umap1,
99 __isl_take isl_union_map *umap2);
100__isl_export
101__isl_give isl_union_map *isl_union_map_subtract(
102 __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
103__isl_export
104__isl_give isl_union_map *isl_union_map_intersect(
105 __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
106__isl_export
107__isl_give isl_union_map *isl_union_map_intersect_params(
108 __isl_take isl_union_map *umap, __isl_take isl_set *set);
109__isl_export
110__isl_give isl_union_map *isl_union_map_product(__isl_take isl_union_map *umap1,
111 __isl_take isl_union_map *umap2);
112__isl_export
113__isl_give isl_union_map *isl_union_map_domain_product(
114 __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
115__isl_give isl_union_map *isl_union_map_flat_domain_product(
116 __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
117__isl_export
118__isl_give isl_union_map *isl_union_map_range_product(
119 __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
120__isl_give isl_union_map *isl_union_map_flat_range_product(
121 __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
122__isl_export
123__isl_give isl_union_map *isl_union_map_domain_factor_domain(
124 __isl_take isl_union_map *umap);
125__isl_export
126__isl_give isl_union_map *isl_union_map_domain_factor_range(
127 __isl_take isl_union_map *umap);
128__isl_export
129__isl_give isl_union_map *isl_union_map_range_factor_domain(
130 __isl_take isl_union_map *umap);
131__isl_export
132__isl_give isl_union_map *isl_union_map_range_factor_range(
133 __isl_take isl_union_map *umap);
134__isl_export
135__isl_give isl_union_map *isl_union_map_factor_domain(
136 __isl_take isl_union_map *umap);
137__isl_export
138__isl_give isl_union_map *isl_union_map_factor_range(
139 __isl_take isl_union_map *umap);
140__isl_export
141__isl_give isl_union_map *isl_union_map_gist(__isl_take isl_union_map *umap,
142 __isl_take isl_union_map *context);
143__isl_export
144__isl_give isl_union_map *isl_union_map_gist_params(
145 __isl_take isl_union_map *umap, __isl_take isl_set *set);
146__isl_export
147__isl_give isl_union_map *isl_union_map_gist_domain(
148 __isl_take isl_union_map *umap, __isl_take isl_union_set *uset);
149__isl_export
150__isl_give isl_union_map *isl_union_map_gist_range(
151 __isl_take isl_union_map *umap, __isl_take isl_union_set *uset);
152
153__isl_overload
154__isl_give isl_union_map *isl_union_map_intersect_domain_union_set(
155 __isl_take isl_union_map *umap, __isl_take isl_union_set *uset);
156__isl_overload
157__isl_give isl_union_map *isl_union_map_intersect_domain_space(
158 __isl_take isl_union_map *umap, __isl_take isl_space *space);
159__isl_give isl_union_map *isl_union_map_intersect_domain(
160 __isl_take isl_union_map *umap, __isl_take isl_union_set *uset);
161__isl_overload
162__isl_give isl_union_map *isl_union_map_intersect_range_union_set(
163 __isl_take isl_union_map *umap, __isl_take isl_union_set *uset);
164__isl_overload
165__isl_give isl_union_map *isl_union_map_intersect_range_space(
166 __isl_take isl_union_map *umap, __isl_take isl_space *space);
167__isl_give isl_union_map *isl_union_map_intersect_range(
168 __isl_take isl_union_map *umap, __isl_take isl_union_set *uset);
169__isl_export
170__isl_give isl_union_map *isl_union_map_intersect_domain_factor_domain(
171 __isl_take isl_union_map *umap, __isl_take isl_union_map *factor);
172__isl_export
173__isl_give isl_union_map *isl_union_map_intersect_domain_factor_range(
174 __isl_take isl_union_map *umap, __isl_take isl_union_map *factor);
175__isl_export
176__isl_give isl_union_map *isl_union_map_intersect_range_factor_domain(
177 __isl_take isl_union_map *umap, __isl_take isl_union_map *factor);
178__isl_export
179__isl_give isl_union_map *isl_union_map_intersect_range_factor_range(
180 __isl_take isl_union_map *umap, __isl_take isl_union_map *factor);
181
182__isl_export
183__isl_give isl_union_map *isl_union_map_subtract_domain(
184 __isl_take isl_union_map *umap, __isl_take isl_union_set *dom);
185__isl_export
186__isl_give isl_union_map *isl_union_map_subtract_range(
187 __isl_take isl_union_map *umap, __isl_take isl_union_set *dom);
188
189__isl_export
190__isl_give isl_union_map *isl_union_map_apply_domain(
191 __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
192__isl_export
193__isl_give isl_union_map *isl_union_map_apply_range(
194 __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
195__isl_overload
196__isl_give isl_union_map *isl_union_map_preimage_domain_multi_aff(
197 __isl_take isl_union_map *umap, __isl_take isl_multi_aff *ma);
198__isl_overload
199__isl_give isl_union_map *isl_union_map_preimage_range_multi_aff(
200 __isl_take isl_union_map *umap, __isl_take isl_multi_aff *ma);
201__isl_overload
202__isl_give isl_union_map *isl_union_map_preimage_domain_pw_multi_aff(
203 __isl_take isl_union_map *umap, __isl_take isl_pw_multi_aff *pma);
204__isl_overload
205__isl_give isl_union_map *isl_union_map_preimage_range_pw_multi_aff(
206 __isl_take isl_union_map *umap, __isl_take isl_pw_multi_aff *pma);
207__isl_overload
208__isl_give isl_union_map *isl_union_map_preimage_domain_multi_pw_aff(
209 __isl_take isl_union_map *umap, __isl_take isl_multi_pw_aff *mpa);
210__isl_overload
211__isl_give isl_union_map *isl_union_map_preimage_domain_union_pw_multi_aff(
212 __isl_take isl_union_map *umap,
213 __isl_take isl_union_pw_multi_aff *upma);
214__isl_overload
215__isl_give isl_union_map *isl_union_map_preimage_range_union_pw_multi_aff(
216 __isl_take isl_union_map *umap,
217 __isl_take isl_union_pw_multi_aff *upma);
218__isl_export
219__isl_give isl_union_map *isl_union_map_reverse(__isl_take isl_union_map *umap);
220__isl_export
221__isl_give isl_union_map *isl_union_map_range_reverse(
222 __isl_take isl_union_map *umap);
223__isl_export
224__isl_give isl_union_map *isl_union_map_from_domain_and_range(
225 __isl_take isl_union_set *domain, __isl_take isl_union_set *range);
226
227__isl_export
228__isl_give isl_union_map *isl_union_map_detect_equalities(
229 __isl_take isl_union_map *umap);
230__isl_export
231__isl_give isl_union_set *isl_union_map_deltas(__isl_take isl_union_map *umap);
232__isl_give isl_union_map *isl_union_map_deltas_map(
233 __isl_take isl_union_map *umap);
234__isl_export
235__isl_give isl_union_map *isl_union_set_identity(__isl_take isl_union_set *uset);
236
237__isl_give isl_union_map *isl_union_map_project_out(
238 __isl_take isl_union_map *umap,
239 enum isl_dim_type type, unsigned first, unsigned n);
240__isl_export
241__isl_give isl_union_map *isl_union_map_project_out_all_params(
242 __isl_take isl_union_map *umap);
243__isl_give isl_union_map *isl_union_map_remove_divs(
244 __isl_take isl_union_map *bmap);
245
246__isl_export
247__isl_give isl_union_set *isl_union_map_bind_range(
248 __isl_take isl_union_map *umap, __isl_take isl_multi_id *tuple);
249
250isl_bool isl_union_map_plain_is_empty(__isl_keep isl_union_map *umap);
251__isl_export
252isl_bool isl_union_map_is_empty(__isl_keep isl_union_map *umap);
253__isl_export
254isl_bool isl_union_map_is_single_valued(__isl_keep isl_union_map *umap);
255isl_bool isl_union_map_plain_is_injective(__isl_keep isl_union_map *umap);
256__isl_export
257isl_bool isl_union_map_is_injective(__isl_keep isl_union_map *umap);
258__isl_export
259isl_bool isl_union_map_is_bijective(__isl_keep isl_union_map *umap);
260isl_bool isl_union_map_is_identity(__isl_keep isl_union_map *umap);
261
262__isl_export
263isl_bool isl_union_map_is_subset(__isl_keep isl_union_map *umap1,
264 __isl_keep isl_union_map *umap2);
265__isl_export
266isl_bool isl_union_map_is_equal(__isl_keep isl_union_map *umap1,
267 __isl_keep isl_union_map *umap2);
268__isl_export
269isl_bool isl_union_map_is_disjoint(__isl_keep isl_union_map *umap1,
270 __isl_keep isl_union_map *umap2);
271__isl_export
272isl_bool isl_union_map_is_strict_subset(__isl_keep isl_union_map *umap1,
273 __isl_keep isl_union_map *umap2);
274
275uint32_t isl_union_map_get_hash(__isl_keep isl_union_map *umap);
276
277isl_size isl_union_map_n_map(__isl_keep isl_union_map *umap);
278__isl_export
279isl_stat isl_union_map_foreach_map(__isl_keep isl_union_map *umap,
280 isl_stat (*fn)(__isl_take isl_map *map, void *user), void *user);
281__isl_give isl_map_list *isl_union_map_get_map_list(
282 __isl_keep isl_union_map *umap);
283__isl_export
284isl_bool isl_union_map_every_map(__isl_keep isl_union_map *umap,
285 isl_bool (*test)(__isl_keep isl_map *map, void *user), void *user);
286__isl_give isl_union_map *isl_union_map_remove_map_if(
287 __isl_take isl_union_map *umap,
288 isl_bool (*fn)(__isl_keep isl_map *map, void *user), void *user);
289isl_bool isl_union_map_contains(__isl_keep isl_union_map *umap,
290 __isl_keep isl_space *space);
291__isl_export
292__isl_give isl_map *isl_union_map_extract_map(__isl_keep isl_union_map *umap,
293 __isl_take isl_space *space);
294__isl_export
295isl_bool isl_union_map_isa_map(__isl_keep isl_union_map *umap);
296__isl_export
297__isl_give isl_map *isl_union_map_as_map(__isl_take isl_union_map *umap);
298__isl_give isl_map *isl_map_from_union_map(__isl_take isl_union_map *umap);
299
300__isl_give isl_basic_map *isl_union_map_sample(__isl_take isl_union_map *umap);
301
302__isl_overload
303__isl_give isl_union_map *isl_union_map_fixed_power_val(
304 __isl_take isl_union_map *umap, __isl_take isl_val *exp);
305__isl_give isl_union_map *isl_union_map_power(__isl_take isl_union_map *umap,
306 isl_bool *exact);
307__isl_give isl_union_map *isl_union_map_transitive_closure(
308 __isl_take isl_union_map *umap, isl_bool *exact);
309
310__isl_give isl_union_map *isl_union_map_lex_lt_union_map(
311 __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
312__isl_give isl_union_map *isl_union_map_lex_le_union_map(
313 __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
314__isl_give isl_union_map *isl_union_map_lex_gt_union_map(
315 __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
316__isl_give isl_union_map *isl_union_map_lex_ge_union_map(
317 __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2);
318
319__isl_overload
320__isl_give isl_union_map *isl_union_map_eq_at_multi_union_pw_aff(
321 __isl_take isl_union_map *umap,
322 __isl_take isl_multi_union_pw_aff *mupa);
323__isl_give isl_union_map *isl_union_map_lex_le_at_multi_union_pw_aff(
324 __isl_take isl_union_map *umap,
325 __isl_take isl_multi_union_pw_aff *mupa);
326__isl_give isl_union_map *isl_union_map_lex_lt_at_multi_union_pw_aff(
327 __isl_take isl_union_map *umap,
328 __isl_take isl_multi_union_pw_aff *mupa);
329__isl_give isl_union_map *isl_union_map_lex_ge_at_multi_union_pw_aff(
330 __isl_take isl_union_map *umap,
331 __isl_take isl_multi_union_pw_aff *mupa);
332__isl_give isl_union_map *isl_union_map_lex_gt_at_multi_union_pw_aff(
333 __isl_take isl_union_map *umap,
334 __isl_take isl_multi_union_pw_aff *mupa);
335
336__isl_give isl_union_map *isl_union_map_read_from_file(isl_ctx *ctx,
337 FILE *input);
338__isl_constructor
339__isl_give isl_union_map *isl_union_map_read_from_str(isl_ctx *ctx,
340 const char *str);
341__isl_give char *isl_union_map_to_str(__isl_keep isl_union_map *umap);
342__isl_give isl_printer *isl_printer_print_union_map(__isl_take isl_printer *p,
343 __isl_keep isl_union_map *umap);
344void isl_union_map_dump(__isl_keep isl_union_map *umap);
345
346__isl_export
347__isl_give isl_union_set *isl_union_map_wrap(__isl_take isl_union_map *umap);
348__isl_export
349__isl_give isl_union_map *isl_union_set_unwrap(__isl_take isl_union_set *uset);
350
351__isl_export
352__isl_give isl_union_map *isl_union_map_zip(__isl_take isl_union_map *umap);
353__isl_export
354__isl_give isl_union_map *isl_union_map_curry(__isl_take isl_union_map *umap);
355__isl_give isl_union_map *isl_union_map_range_curry(
356 __isl_take isl_union_map *umap);
357__isl_export
358__isl_give isl_union_map *isl_union_map_uncurry(__isl_take isl_union_map *umap);
359
360__isl_give isl_union_map *isl_union_map_align_params(
361 __isl_take isl_union_map *umap, __isl_take isl_space *model);
362__isl_give isl_union_set *isl_union_set_align_params(
363 __isl_take isl_union_set *uset, __isl_take isl_space *model);
364
365ISL_DECLARE_LIST_FN(union_map)
366
367#if defined(__cplusplus)
368}
369#endif
370
371#endif
Note: See TracBrowser for help on using the repository browser.