1 #ifndef ISL_UNION_SET_H
2 #define ISL_UNION_SET_H
5 #include <isl/union_map.h>
7 #if defined(__cplusplus)
11 isl_size
isl_union_set_dim(__isl_keep isl_union_set
*uset
,
12 enum isl_dim_type type
);
15 __isl_give isl_union_set
*isl_union_set_from_basic_set(
16 __isl_take isl_basic_set
*bset
);
18 __isl_give isl_union_set
*isl_set_to_union_set(__isl_take isl_set
*set
);
20 __isl_give isl_union_set
*isl_union_set_from_set(__isl_take isl_set
*set
);
22 __isl_give isl_union_set
*isl_union_set_empty_ctx(isl_ctx
*ctx
);
23 __isl_give isl_union_set
*isl_union_set_empty_space(
24 __isl_take isl_space
*space
);
25 __isl_give isl_union_set
*isl_union_set_empty(__isl_take isl_space
*space
);
26 __isl_give isl_union_set
*isl_union_set_copy(__isl_keep isl_union_set
*uset
);
27 __isl_null isl_union_set
*isl_union_set_free(__isl_take isl_union_set
*uset
);
29 isl_ctx
*isl_union_set_get_ctx(__isl_keep isl_union_set
*uset
);
31 __isl_give isl_space
*isl_union_set_get_space(__isl_keep isl_union_set
*uset
);
33 __isl_give isl_union_set
*isl_union_set_reset_user(
34 __isl_take isl_union_set
*uset
);
37 __isl_give isl_union_set
*isl_union_set_universe(
38 __isl_take isl_union_set
*uset
);
40 __isl_give isl_set
*isl_union_set_params(__isl_take isl_union_set
*uset
);
43 __isl_give isl_union_set
*isl_union_set_detect_equalities(
44 __isl_take isl_union_set
*uset
);
46 __isl_give isl_union_set
*isl_union_set_affine_hull(
47 __isl_take isl_union_set
*uset
);
49 __isl_give isl_union_set
*isl_union_set_polyhedral_hull(
50 __isl_take isl_union_set
*uset
);
51 __isl_give isl_union_set
*isl_union_set_remove_redundancies(
52 __isl_take isl_union_set
*uset
);
53 __isl_give isl_union_set
*isl_union_set_simple_hull(
54 __isl_take isl_union_set
*uset
);
56 __isl_give isl_union_set
*isl_union_set_coalesce(
57 __isl_take isl_union_set
*uset
);
59 __isl_give isl_union_set
*isl_union_set_compute_divs(
60 __isl_take isl_union_set
*uset
);
62 __isl_give isl_union_set
*isl_union_set_lexmin(__isl_take isl_union_set
*uset
);
64 __isl_give isl_union_set
*isl_union_set_lexmax(__isl_take isl_union_set
*uset
);
66 __isl_give isl_union_set
*isl_union_set_add_set(__isl_take isl_union_set
*uset
,
67 __isl_take isl_set
*set
);
69 __isl_give isl_union_set
*isl_union_set_union(__isl_take isl_union_set
*uset1
,
70 __isl_take isl_union_set
*uset2
);
72 __isl_give isl_union_set
*isl_union_set_subtract(
73 __isl_take isl_union_set
*uset1
, __isl_take isl_union_set
*uset2
);
75 __isl_give isl_union_set
*isl_union_set_intersect(
76 __isl_take isl_union_set
*uset1
, __isl_take isl_union_set
*uset2
);
78 __isl_give isl_union_set
*isl_union_set_intersect_params(
79 __isl_take isl_union_set
*uset
, __isl_take isl_set
*set
);
80 __isl_give isl_union_set
*isl_union_set_product(__isl_take isl_union_set
*uset1
,
81 __isl_take isl_union_set
*uset2
);
83 __isl_give isl_union_set
*isl_union_set_gist(__isl_take isl_union_set
*uset
,
84 __isl_take isl_union_set
*context
);
86 __isl_give isl_union_set
*isl_union_set_gist_params(
87 __isl_take isl_union_set
*uset
, __isl_take isl_set
*set
);
90 __isl_give isl_union_set
*isl_union_set_apply(
91 __isl_take isl_union_set
*uset
, __isl_take isl_union_map
*umap
);
93 __isl_give isl_union_set
*isl_union_set_preimage_multi_aff(
94 __isl_take isl_union_set
*uset
, __isl_take isl_multi_aff
*ma
);
96 __isl_give isl_union_set
*isl_union_set_preimage_pw_multi_aff(
97 __isl_take isl_union_set
*uset
, __isl_take isl_pw_multi_aff
*pma
);
99 __isl_give isl_union_set
*isl_union_set_preimage_union_pw_multi_aff(
100 __isl_take isl_union_set
*uset
,
101 __isl_take isl_union_pw_multi_aff
*upma
);
103 __isl_give isl_union_set
*isl_union_set_project_out(
104 __isl_take isl_union_set
*uset
,
105 enum isl_dim_type type
, unsigned first
, unsigned n
);
107 __isl_give isl_union_set
*isl_union_set_project_out_all_params(
108 __isl_take isl_union_set
*uset
);
110 __isl_give isl_union_set
*isl_union_set_drop_unused_params(
111 __isl_take isl_union_set
*uset
);
112 __isl_give isl_union_set
*isl_union_set_remove_divs(
113 __isl_take isl_union_set
*bset
);
115 isl_bool
isl_union_set_is_params(__isl_keep isl_union_set
*uset
);
117 isl_bool
isl_union_set_is_empty(__isl_keep isl_union_set
*uset
);
120 isl_bool
isl_union_set_is_subset(__isl_keep isl_union_set
*uset1
,
121 __isl_keep isl_union_set
*uset2
);
123 isl_bool
isl_union_set_is_equal(__isl_keep isl_union_set
*uset1
,
124 __isl_keep isl_union_set
*uset2
);
126 isl_bool
isl_union_set_is_disjoint(__isl_keep isl_union_set
*uset1
,
127 __isl_keep isl_union_set
*uset2
);
129 isl_bool
isl_union_set_is_strict_subset(__isl_keep isl_union_set
*uset1
,
130 __isl_keep isl_union_set
*uset2
);
132 uint32_t isl_union_set_get_hash(__isl_keep isl_union_set
*uset
);
134 isl_size
isl_union_set_n_set(__isl_keep isl_union_set
*uset
);
136 isl_stat
isl_union_set_foreach_set(__isl_keep isl_union_set
*uset
,
137 isl_stat (*fn
)(__isl_take isl_set
*set
, void *user
), void *user
);
139 isl_bool
isl_union_set_every_set(__isl_keep isl_union_set
*uset
,
140 isl_bool (*test
)(__isl_keep isl_set
*set
, void *user
), void *user
);
141 __isl_give isl_basic_set_list
*isl_union_set_get_basic_set_list(
142 __isl_keep isl_union_set
*uset
);
144 __isl_give isl_set_list
*isl_union_set_get_set_list(
145 __isl_keep isl_union_set
*uset
);
146 isl_bool
isl_union_set_contains(__isl_keep isl_union_set
*uset
,
147 __isl_keep isl_space
*space
);
149 __isl_give isl_set
*isl_union_set_extract_set(__isl_keep isl_union_set
*uset
,
150 __isl_take isl_space
*space
);
152 isl_bool
isl_union_set_isa_set(__isl_keep isl_union_set
*uset
);
154 __isl_give isl_set
*isl_union_set_as_set(__isl_take isl_union_set
*uset
);
155 __isl_give isl_set
*isl_set_from_union_set(__isl_take isl_union_set
*uset
);
157 isl_stat
isl_union_set_foreach_point(__isl_keep isl_union_set
*uset
,
158 isl_stat (*fn
)(__isl_take isl_point
*pnt
, void *user
), void *user
);
160 __isl_give isl_basic_set
*isl_union_set_sample(__isl_take isl_union_set
*uset
);
162 __isl_give isl_point
*isl_union_set_sample_point(
163 __isl_take isl_union_set
*uset
);
166 __isl_give isl_union_set
*isl_union_set_from_point(__isl_take isl_point
*pnt
);
168 __isl_give isl_union_set
*isl_union_set_lift(__isl_take isl_union_set
*uset
);
170 __isl_give isl_union_map
*isl_union_set_lex_lt_union_set(
171 __isl_take isl_union_set
*uset1
, __isl_take isl_union_set
*uset2
);
172 __isl_give isl_union_map
*isl_union_set_lex_le_union_set(
173 __isl_take isl_union_set
*uset1
, __isl_take isl_union_set
*uset2
);
174 __isl_give isl_union_map
*isl_union_set_lex_gt_union_set(
175 __isl_take isl_union_set
*uset1
, __isl_take isl_union_set
*uset2
);
176 __isl_give isl_union_map
*isl_union_set_lex_ge_union_set(
177 __isl_take isl_union_set
*uset1
, __isl_take isl_union_set
*uset2
);
179 __isl_give isl_union_set
*isl_union_set_coefficients(
180 __isl_take isl_union_set
*bset
);
181 __isl_give isl_union_set
*isl_union_set_solutions(
182 __isl_take isl_union_set
*bset
);
184 __isl_give isl_union_set
*isl_union_set_read_from_file(isl_ctx
*ctx
,
187 __isl_give isl_union_set
*isl_union_set_read_from_str(isl_ctx
*ctx
,
189 __isl_give
char *isl_union_set_to_str(__isl_keep isl_union_set
*uset
);
190 __isl_give isl_printer
*isl_printer_print_union_set(__isl_take isl_printer
*p
,
191 __isl_keep isl_union_set
*uset
);
192 void isl_union_set_dump(__isl_keep isl_union_set
*uset
);
194 ISL_DECLARE_EXPORTED_LIST_FN(union_set
)
195 ISL_DECLARE_EXPORTED_LIST_FN_READ(union_set
)
197 __isl_give isl_union_set
*isl_union_set_list_union(
198 __isl_take isl_union_set_list
*list
);
200 #if defined(__cplusplus)