1#ifndef ISL_AFF_H
2#define ISL_AFF_H
3
4#include <isl/stdint.h>
5#include <isl/local_space.h>
6#include <isl/printer.h>
7#include <isl/id_type.h>
8#include <isl/set_type.h>
9#include <isl/aff_type.h>
10#include <isl/list.h>
11#include <isl/multi.h>
12#include <isl/union_set_type.h>
13#include <isl/val_type.h>
14#include <isl/point.h>
15
16#if defined(__cplusplus)
17extern "C" {
18#endif
19
20__isl_overload
21__isl_give isl_aff *isl_aff_zero_on_domain_space(__isl_take isl_space *space);
22__isl_export
23__isl_give isl_aff *isl_space_zero_aff_on_domain(__isl_take isl_space *space);
24__isl_give isl_aff *isl_aff_zero_on_domain(__isl_take isl_local_space *ls);
25__isl_give isl_aff *isl_aff_val_on_domain_space(__isl_take isl_space *space,
26 __isl_take isl_val *val);
27__isl_give isl_aff *isl_aff_val_on_domain(__isl_take isl_local_space *ls,
28 __isl_take isl_val *val);
29__isl_give isl_aff *isl_aff_var_on_domain(__isl_take isl_local_space *ls,
30 enum isl_dim_type type, unsigned pos);
31__isl_give isl_aff *isl_aff_nan_on_domain_space(__isl_take isl_space *space);
32__isl_give isl_aff *isl_aff_nan_on_domain(__isl_take isl_local_space *ls);
33__isl_give isl_aff *isl_aff_param_on_domain_space_id(
34 __isl_take isl_space *space, __isl_take isl_id *id);
35__isl_overload
36__isl_give isl_aff *isl_space_param_aff_on_domain_id(
37 __isl_take isl_space *space, __isl_take isl_id *id);
38
39__isl_give isl_aff *isl_aff_copy(__isl_keep isl_aff *aff);
40__isl_null isl_aff *isl_aff_free(__isl_take isl_aff *aff);
41
42isl_ctx *isl_aff_get_ctx(__isl_keep isl_aff *aff);
43uint32_t isl_aff_get_hash(__isl_keep isl_aff *aff);
44
45isl_bool isl_aff_involves_locals(__isl_keep isl_aff *aff);
46
47isl_size isl_aff_dim(__isl_keep isl_aff *aff, enum isl_dim_type type);
48isl_bool isl_aff_involves_dims(__isl_keep isl_aff *aff,
49 enum isl_dim_type type, unsigned first, unsigned n);
50
51__isl_give isl_space *isl_aff_get_domain_space(__isl_keep isl_aff *aff);
52__isl_give isl_space *isl_aff_get_space(__isl_keep isl_aff *aff);
53__isl_give isl_local_space *isl_aff_get_domain_local_space(
54 __isl_keep isl_aff *aff);
55__isl_give isl_local_space *isl_aff_get_local_space(__isl_keep isl_aff *aff);
56
57const char *isl_aff_get_dim_name(__isl_keep isl_aff *aff,
58 enum isl_dim_type type, unsigned pos);
59__isl_export
60__isl_give isl_val *isl_aff_get_constant_val(__isl_keep isl_aff *aff);
61__isl_give isl_val *isl_aff_get_coefficient_val(__isl_keep isl_aff *aff,
62 enum isl_dim_type type, int pos);
63int isl_aff_coefficient_sgn(__isl_keep isl_aff *aff,
64 enum isl_dim_type type, int pos);
65__isl_give isl_val *isl_aff_get_denominator_val(__isl_keep isl_aff *aff);
66__isl_give isl_aff *isl_aff_set_constant_si(__isl_take isl_aff *aff, int v);
67__isl_give isl_aff *isl_aff_set_constant_val(__isl_take isl_aff *aff,
68 __isl_take isl_val *v);
69__isl_give isl_aff *isl_aff_set_coefficient_si(__isl_take isl_aff *aff,
70 enum isl_dim_type type, int pos, int v);
71__isl_give isl_aff *isl_aff_set_coefficient_val(__isl_take isl_aff *aff,
72 enum isl_dim_type type, int pos, __isl_take isl_val *v);
73__isl_give isl_aff *isl_aff_add_constant_si(__isl_take isl_aff *aff, int v);
74__isl_overload
75__isl_give isl_aff *isl_aff_add_constant_val(__isl_take isl_aff *aff,
76 __isl_take isl_val *v);
77__isl_give isl_aff *isl_aff_add_constant_num_si(__isl_take isl_aff *aff, int v);
78__isl_give isl_aff *isl_aff_add_coefficient_si(__isl_take isl_aff *aff,
79 enum isl_dim_type type, int pos, int v);
80__isl_give isl_aff *isl_aff_add_coefficient_val(__isl_take isl_aff *aff,
81 enum isl_dim_type type, int pos, __isl_take isl_val *v);
82
83__isl_export
84isl_bool isl_aff_is_cst(__isl_keep isl_aff *aff);
85
86__isl_give isl_aff *isl_aff_set_tuple_id(__isl_take isl_aff *aff,
87 enum isl_dim_type type, __isl_take isl_id *id);
88__isl_give isl_aff *isl_aff_set_dim_name(__isl_take isl_aff *aff,
89 enum isl_dim_type type, unsigned pos, const char *s);
90__isl_give isl_aff *isl_aff_set_dim_id(__isl_take isl_aff *aff,
91 enum isl_dim_type type, unsigned pos, __isl_take isl_id *id);
92
93int isl_aff_find_dim_by_name(__isl_keep isl_aff *aff, enum isl_dim_type type,
94 const char *name);
95
96isl_bool isl_aff_plain_is_equal(__isl_keep isl_aff *aff1,
97 __isl_keep isl_aff *aff2);
98isl_bool isl_aff_plain_is_zero(__isl_keep isl_aff *aff);
99isl_bool isl_aff_is_nan(__isl_keep isl_aff *aff);
100
101__isl_give isl_aff *isl_aff_get_div(__isl_keep isl_aff *aff, int pos);
102
103__isl_give isl_aff *isl_aff_from_range(__isl_take isl_aff *aff);
104
105__isl_export
106__isl_give isl_aff *isl_aff_neg(__isl_take isl_aff *aff);
107__isl_export
108__isl_give isl_aff *isl_aff_ceil(__isl_take isl_aff *aff);
109__isl_export
110__isl_give isl_aff *isl_aff_floor(__isl_take isl_aff *aff);
111__isl_overload
112__isl_give isl_aff *isl_aff_mod_val(__isl_take isl_aff *aff,
113 __isl_take isl_val *mod);
114
115__isl_export
116__isl_give isl_aff *isl_aff_mul(__isl_take isl_aff *aff1,
117 __isl_take isl_aff *aff2);
118__isl_export
119__isl_give isl_aff *isl_aff_div(__isl_take isl_aff *aff1,
120 __isl_take isl_aff *aff2);
121__isl_export
122__isl_give isl_aff *isl_aff_add(__isl_take isl_aff *aff1,
123 __isl_take isl_aff *aff2);
124__isl_export
125__isl_give isl_aff *isl_aff_sub(__isl_take isl_aff *aff1,
126 __isl_take isl_aff *aff2);
127
128__isl_overload
129__isl_give isl_aff *isl_aff_scale_val(__isl_take isl_aff *aff,
130 __isl_take isl_val *v);
131__isl_give isl_aff *isl_aff_scale_down_ui(__isl_take isl_aff *aff, unsigned f);
132__isl_overload
133__isl_give isl_aff *isl_aff_scale_down_val(__isl_take isl_aff *aff,
134 __isl_take isl_val *v);
135
136__isl_give isl_aff *isl_aff_insert_dims(__isl_take isl_aff *aff,
137 enum isl_dim_type type, unsigned first, unsigned n);
138__isl_give isl_aff *isl_aff_add_dims(__isl_take isl_aff *aff,
139 enum isl_dim_type type, unsigned n);
140__isl_give isl_aff *isl_aff_move_dims(__isl_take isl_aff *aff,
141 enum isl_dim_type dst_type, unsigned dst_pos,
142 enum isl_dim_type src_type, unsigned src_pos, unsigned n);
143__isl_give isl_aff *isl_aff_drop_dims(__isl_take isl_aff *aff,
144 enum isl_dim_type type, unsigned first, unsigned n);
145__isl_give isl_aff *isl_aff_project_domain_on_params(__isl_take isl_aff *aff);
146__isl_export
147__isl_give isl_aff *isl_aff_unbind_params_insert_domain(
148 __isl_take isl_aff *aff, __isl_take isl_multi_id *domain);
149
150__isl_give isl_aff *isl_aff_align_params(__isl_take isl_aff *aff,
151 __isl_take isl_space *model);
152
153__isl_export
154__isl_give isl_aff *isl_aff_gist(__isl_take isl_aff *aff,
155 __isl_take isl_set *context);
156__isl_export
157__isl_give isl_aff *isl_aff_gist_params(__isl_take isl_aff *aff,
158 __isl_take isl_set *context);
159
160__isl_export
161__isl_give isl_val *isl_aff_eval(__isl_take isl_aff *aff,
162 __isl_take isl_point *pnt);
163
164__isl_give isl_aff *isl_aff_pullback_aff(__isl_take isl_aff *aff1,
165 __isl_take isl_aff *aff2);
166__isl_overload
167__isl_give isl_aff *isl_aff_pullback_multi_aff(__isl_take isl_aff *aff,
168 __isl_take isl_multi_aff *ma);
169
170__isl_give isl_basic_set *isl_aff_zero_basic_set(__isl_take isl_aff *aff);
171__isl_give isl_basic_set *isl_aff_neg_basic_set(__isl_take isl_aff *aff);
172
173__isl_give isl_basic_set *isl_aff_eq_basic_set(__isl_take isl_aff *aff1,
174 __isl_take isl_aff *aff2);
175__isl_export
176__isl_give isl_set *isl_aff_eq_set(__isl_take isl_aff *aff1,
177 __isl_take isl_aff *aff2);
178__isl_export
179__isl_give isl_set *isl_aff_ne_set(__isl_take isl_aff *aff1,
180 __isl_take isl_aff *aff2);
181__isl_give isl_basic_set *isl_aff_le_basic_set(__isl_take isl_aff *aff1,
182 __isl_take isl_aff *aff2);
183__isl_export
184__isl_give isl_set *isl_aff_le_set(__isl_take isl_aff *aff1,
185 __isl_take isl_aff *aff2);
186__isl_give isl_basic_set *isl_aff_lt_basic_set(__isl_take isl_aff *aff1,
187 __isl_take isl_aff *aff2);
188__isl_export
189__isl_give isl_set *isl_aff_lt_set(__isl_take isl_aff *aff1,
190 __isl_take isl_aff *aff2);
191__isl_give isl_basic_set *isl_aff_ge_basic_set(__isl_take isl_aff *aff1,
192 __isl_take isl_aff *aff2);
193__isl_export
194__isl_give isl_set *isl_aff_ge_set(__isl_take isl_aff *aff1,
195 __isl_take isl_aff *aff2);
196__isl_give isl_basic_set *isl_aff_gt_basic_set(__isl_take isl_aff *aff1,
197 __isl_take isl_aff *aff2);
198__isl_export
199__isl_give isl_set *isl_aff_gt_set(__isl_take isl_aff *aff1,
200 __isl_take isl_aff *aff2);
201
202__isl_overload
203__isl_give isl_basic_set *isl_aff_bind_id(__isl_take isl_aff *aff,
204 __isl_take isl_id *id);
205
206__isl_constructor
207__isl_give isl_aff *isl_aff_read_from_str(isl_ctx *ctx, const char *str);
208__isl_give char *isl_aff_to_str(__isl_keep isl_aff *aff);
209__isl_give isl_printer *isl_printer_print_aff(__isl_take isl_printer *p,
210 __isl_keep isl_aff *aff);
211void isl_aff_dump(__isl_keep isl_aff *aff);
212
213isl_ctx *isl_pw_aff_get_ctx(__isl_keep isl_pw_aff *pwaff);
214uint32_t isl_pw_aff_get_hash(__isl_keep isl_pw_aff *pa);
215__isl_give isl_space *isl_pw_aff_get_domain_space(__isl_keep isl_pw_aff *pwaff);
216__isl_export
217__isl_give isl_space *isl_pw_aff_get_space(__isl_keep isl_pw_aff *pwaff);
218
219__isl_constructor
220__isl_give isl_pw_aff *isl_pw_aff_from_aff(__isl_take isl_aff *aff);
221__isl_give isl_pw_aff *isl_pw_aff_empty(__isl_take isl_space *space);
222__isl_give isl_pw_aff *isl_pw_aff_alloc(__isl_take isl_set *set,
223 __isl_take isl_aff *aff);
224__isl_give isl_pw_aff *isl_pw_aff_zero_on_domain(
225 __isl_take isl_local_space *ls);
226__isl_give isl_pw_aff *isl_pw_aff_var_on_domain(__isl_take isl_local_space *ls,
227 enum isl_dim_type type, unsigned pos);
228__isl_give isl_pw_aff *isl_pw_aff_nan_on_domain_space(
229 __isl_take isl_space *space);
230__isl_give isl_pw_aff *isl_pw_aff_nan_on_domain(__isl_take isl_local_space *ls);
231__isl_give isl_pw_aff *isl_pw_aff_val_on_domain(__isl_take isl_set *domain,
232 __isl_take isl_val *v);
233__isl_overload
234__isl_give isl_pw_aff *isl_set_pw_aff_on_domain_val(__isl_take isl_set *domain,
235 __isl_take isl_val *v);
236__isl_overload
237__isl_give isl_pw_aff *isl_pw_aff_param_on_domain_id(
238 __isl_take isl_set *domain, __isl_take isl_id *id);
239__isl_overload
240__isl_give isl_pw_aff *isl_set_param_pw_aff_on_domain_id(
241 __isl_take isl_set *domain, __isl_take isl_id *id);
242
243__isl_export
244__isl_give isl_pw_aff *isl_set_indicator_function(__isl_take isl_set *set);
245
246const char *isl_pw_aff_get_dim_name(__isl_keep isl_pw_aff *pa,
247 enum isl_dim_type type, unsigned pos);
248isl_bool isl_pw_aff_has_dim_id(__isl_keep isl_pw_aff *pa,
249 enum isl_dim_type type, unsigned pos);
250__isl_give isl_id *isl_pw_aff_get_dim_id(__isl_keep isl_pw_aff *pa,
251 enum isl_dim_type type, unsigned pos);
252__isl_give isl_pw_aff *isl_pw_aff_set_dim_id(__isl_take isl_pw_aff *pma,
253 enum isl_dim_type type, unsigned pos, __isl_take isl_id *id);
254
255int isl_pw_aff_find_dim_by_name(__isl_keep isl_pw_aff *pa,
256 enum isl_dim_type type, const char *name);
257
258isl_bool isl_pw_aff_is_empty(__isl_keep isl_pw_aff *pwaff);
259isl_bool isl_pw_aff_involves_nan(__isl_keep isl_pw_aff *pa);
260int isl_pw_aff_plain_cmp(__isl_keep isl_pw_aff *pa1,
261 __isl_keep isl_pw_aff *pa2);
262isl_bool isl_pw_aff_plain_is_equal(__isl_keep isl_pw_aff *pwaff1,
263 __isl_keep isl_pw_aff *pwaff2);
264isl_bool isl_pw_aff_is_equal(__isl_keep isl_pw_aff *pa1,
265 __isl_keep isl_pw_aff *pa2);
266
267__isl_give isl_pw_aff *isl_pw_aff_union_min(__isl_take isl_pw_aff *pwaff1,
268 __isl_take isl_pw_aff *pwaff2);
269__isl_give isl_pw_aff *isl_pw_aff_union_max(__isl_take isl_pw_aff *pwaff1,
270 __isl_take isl_pw_aff *pwaff2);
271__isl_export
272__isl_give isl_pw_aff *isl_pw_aff_union_add(__isl_take isl_pw_aff *pwaff1,
273 __isl_take isl_pw_aff *pwaff2);
274
275__isl_give isl_pw_aff *isl_pw_aff_copy(__isl_keep isl_pw_aff *pwaff);
276__isl_null isl_pw_aff *isl_pw_aff_free(__isl_take isl_pw_aff *pwaff);
277
278isl_size isl_pw_aff_dim(__isl_keep isl_pw_aff *pwaff, enum isl_dim_type type);
279isl_bool isl_pw_aff_involves_param_id(__isl_keep isl_pw_aff *pa,
280 __isl_keep isl_id *id);
281isl_bool isl_pw_aff_involves_dims(__isl_keep isl_pw_aff *pwaff,
282 enum isl_dim_type type, unsigned first, unsigned n);
283
284isl_bool isl_pw_aff_is_cst(__isl_keep isl_pw_aff *pwaff);
285
286__isl_export
287__isl_give isl_pw_aff *isl_pw_aff_insert_domain(__isl_take isl_pw_aff *pa,
288 __isl_take isl_space *domain);
289__isl_give isl_pw_aff *isl_pw_aff_project_domain_on_params(
290 __isl_take isl_pw_aff *pa);
291
292__isl_give isl_pw_aff *isl_pw_aff_align_params(__isl_take isl_pw_aff *pwaff,
293 __isl_take isl_space *model);
294__isl_give isl_pw_aff *isl_pw_aff_drop_unused_params(
295 __isl_take isl_pw_aff *pa);
296
297isl_bool isl_pw_aff_has_tuple_id(__isl_keep isl_pw_aff *pa,
298 enum isl_dim_type type);
299__isl_give isl_id *isl_pw_aff_get_tuple_id(__isl_keep isl_pw_aff *pa,
300 enum isl_dim_type type);
301__isl_give isl_pw_aff *isl_pw_aff_set_tuple_id(__isl_take isl_pw_aff *pwaff,
302 enum isl_dim_type type, __isl_take isl_id *id);
303__isl_give isl_pw_aff *isl_pw_aff_reset_tuple_id(__isl_take isl_pw_aff *pa,
304 enum isl_dim_type type);
305__isl_give isl_pw_aff *isl_pw_aff_reset_user(__isl_take isl_pw_aff *pa);
306
307__isl_give isl_set *isl_pw_aff_params(__isl_take isl_pw_aff *pwa);
308__isl_export
309__isl_give isl_set *isl_pw_aff_domain(__isl_take isl_pw_aff *pwaff);
310__isl_give isl_pw_aff *isl_pw_aff_from_range(__isl_take isl_pw_aff *pwa);
311
312__isl_export
313__isl_give isl_pw_aff *isl_pw_aff_min(__isl_take isl_pw_aff *pwaff1,
314 __isl_take isl_pw_aff *pwaff2);
315__isl_export
316__isl_give isl_pw_aff *isl_pw_aff_max(__isl_take isl_pw_aff *pwaff1,
317 __isl_take isl_pw_aff *pwaff2);
318__isl_export
319__isl_give isl_pw_aff *isl_pw_aff_mul(__isl_take isl_pw_aff *pwaff1,
320 __isl_take isl_pw_aff *pwaff2);
321__isl_export
322__isl_give isl_pw_aff *isl_pw_aff_div(__isl_take isl_pw_aff *pa1,
323 __isl_take isl_pw_aff *pa2);
324__isl_export
325__isl_give isl_pw_aff *isl_pw_aff_add(__isl_take isl_pw_aff *pwaff1,
326 __isl_take isl_pw_aff *pwaff2);
327__isl_export
328__isl_give isl_pw_aff *isl_pw_aff_sub(__isl_take isl_pw_aff *pwaff1,
329 __isl_take isl_pw_aff *pwaff2);
330__isl_export
331__isl_give isl_pw_aff *isl_pw_aff_neg(__isl_take isl_pw_aff *pwaff);
332__isl_export
333__isl_give isl_pw_aff *isl_pw_aff_ceil(__isl_take isl_pw_aff *pwaff);
334__isl_export
335__isl_give isl_pw_aff *isl_pw_aff_floor(__isl_take isl_pw_aff *pwaff);
336__isl_overload
337__isl_give isl_pw_aff *isl_pw_aff_mod_val(__isl_take isl_pw_aff *pa,
338 __isl_take isl_val *mod);
339__isl_export
340__isl_give isl_pw_aff *isl_pw_aff_tdiv_q(__isl_take isl_pw_aff *pa1,
341 __isl_take isl_pw_aff *pa2);
342__isl_export
343__isl_give isl_pw_aff *isl_pw_aff_tdiv_r(__isl_take isl_pw_aff *pa1,
344 __isl_take isl_pw_aff *pa2);
345
346__isl_export
347__isl_give isl_pw_aff *isl_pw_aff_intersect_params(__isl_take isl_pw_aff *pa,
348 __isl_take isl_set *set);
349__isl_export
350__isl_give isl_pw_aff *isl_pw_aff_intersect_domain(__isl_take isl_pw_aff *pa,
351 __isl_take isl_set *set);
352__isl_give isl_pw_aff *isl_pw_aff_intersect_domain_wrapped_domain(
353 __isl_take isl_pw_aff *pa, __isl_take isl_set *set);
354__isl_give isl_pw_aff *isl_pw_aff_intersect_domain_wrapped_range(
355 __isl_take isl_pw_aff *pa, __isl_take isl_set *set);
356__isl_export
357__isl_give isl_pw_aff *isl_pw_aff_subtract_domain(__isl_take isl_pw_aff *pa,
358 __isl_take isl_set *set);
359
360__isl_export
361__isl_give isl_pw_aff *isl_pw_aff_cond(__isl_take isl_pw_aff *cond,
362 __isl_take isl_pw_aff *pwaff_true, __isl_take isl_pw_aff *pwaff_false);
363
364__isl_overload
365__isl_give isl_pw_aff *isl_pw_aff_add_constant_val(__isl_take isl_pw_aff *pa,
366 __isl_take isl_val *v);
367__isl_overload
368__isl_give isl_pw_aff *isl_pw_aff_scale_val(__isl_take isl_pw_aff *pa,
369 __isl_take isl_val *v);
370__isl_overload
371__isl_give isl_pw_aff *isl_pw_aff_scale_down_val(__isl_take isl_pw_aff *pa,
372 __isl_take isl_val *f);
373
374__isl_give isl_pw_aff *isl_pw_aff_insert_dims(__isl_take isl_pw_aff *pwaff,
375 enum isl_dim_type type, unsigned first, unsigned n);
376__isl_give isl_pw_aff *isl_pw_aff_add_dims(__isl_take isl_pw_aff *pwaff,
377 enum isl_dim_type type, unsigned n);
378__isl_give isl_pw_aff *isl_pw_aff_move_dims(__isl_take isl_pw_aff *pa,
379 enum isl_dim_type dst_type, unsigned dst_pos,
380 enum isl_dim_type src_type, unsigned src_pos, unsigned n);
381__isl_give isl_pw_aff *isl_pw_aff_drop_dims(__isl_take isl_pw_aff *pwaff,
382 enum isl_dim_type type, unsigned first, unsigned n);
383
384__isl_export
385__isl_give isl_pw_aff *isl_pw_aff_coalesce(__isl_take isl_pw_aff *pa);
386__isl_export
387__isl_give isl_pw_aff *isl_pw_aff_gist(__isl_take isl_pw_aff *pwaff,
388 __isl_take isl_set *context);
389__isl_export
390__isl_give isl_pw_aff *isl_pw_aff_gist_params(__isl_take isl_pw_aff *pwaff,
391 __isl_take isl_set *context);
392
393__isl_export
394__isl_give isl_val *isl_pw_aff_eval(__isl_take isl_pw_aff *pa,
395 __isl_take isl_point *pnt);
396
397__isl_overload
398__isl_give isl_pw_aff *isl_pw_aff_pullback_multi_aff(
399 __isl_take isl_pw_aff *pa, __isl_take isl_multi_aff *ma);
400__isl_overload
401__isl_give isl_pw_aff *isl_pw_aff_pullback_pw_multi_aff(
402 __isl_take isl_pw_aff *pa, __isl_take isl_pw_multi_aff *pma);
403__isl_overload
404__isl_give isl_pw_aff *isl_pw_aff_pullback_multi_pw_aff(
405 __isl_take isl_pw_aff *pa, __isl_take isl_multi_pw_aff *mpa);
406
407isl_size isl_pw_aff_n_piece(__isl_keep isl_pw_aff *pwaff);
408isl_stat isl_pw_aff_foreach_piece(__isl_keep isl_pw_aff *pwaff,
409 isl_stat (*fn)(__isl_take isl_set *set, __isl_take isl_aff *aff,
410 void *user), void *user);
411isl_bool isl_pw_aff_every_piece(__isl_keep isl_pw_aff *pa,
412 isl_bool (*test)(__isl_keep isl_set *set, __isl_keep isl_aff *aff,
413 void *user), void *user);
414__isl_export
415isl_bool isl_pw_aff_isa_aff(__isl_keep isl_pw_aff *pa);
416__isl_export
417__isl_give isl_aff *isl_pw_aff_as_aff(__isl_take isl_pw_aff *pa);
418
419__isl_export
420__isl_give isl_map *isl_pw_aff_as_map(__isl_take isl_pw_aff *pa);
421__isl_give isl_set *isl_set_from_pw_aff(__isl_take isl_pw_aff *pwaff);
422__isl_give isl_map *isl_map_from_pw_aff(__isl_take isl_pw_aff *pwaff);
423
424__isl_give isl_set *isl_pw_aff_pos_set(__isl_take isl_pw_aff *pa);
425__isl_give isl_set *isl_pw_aff_nonneg_set(__isl_take isl_pw_aff *pwaff);
426__isl_give isl_set *isl_pw_aff_zero_set(__isl_take isl_pw_aff *pwaff);
427__isl_give isl_set *isl_pw_aff_non_zero_set(__isl_take isl_pw_aff *pwaff);
428
429__isl_export
430__isl_give isl_set *isl_pw_aff_eq_set(__isl_take isl_pw_aff *pwaff1,
431 __isl_take isl_pw_aff *pwaff2);
432__isl_export
433__isl_give isl_set *isl_pw_aff_ne_set(__isl_take isl_pw_aff *pwaff1,
434 __isl_take isl_pw_aff *pwaff2);
435__isl_export
436__isl_give isl_set *isl_pw_aff_le_set(__isl_take isl_pw_aff *pwaff1,
437 __isl_take isl_pw_aff *pwaff2);
438__isl_export
439__isl_give isl_set *isl_pw_aff_lt_set(__isl_take isl_pw_aff *pwaff1,
440 __isl_take isl_pw_aff *pwaff2);
441__isl_export
442__isl_give isl_set *isl_pw_aff_ge_set(__isl_take isl_pw_aff *pwaff1,
443 __isl_take isl_pw_aff *pwaff2);
444__isl_export
445__isl_give isl_set *isl_pw_aff_gt_set(__isl_take isl_pw_aff *pwaff1,
446 __isl_take isl_pw_aff *pwaff2);
447
448__isl_give isl_map *isl_pw_aff_eq_map(__isl_take isl_pw_aff *pa1,
449 __isl_take isl_pw_aff *pa2);
450__isl_give isl_map *isl_pw_aff_le_map(__isl_take isl_pw_aff *pa1,
451 __isl_take isl_pw_aff *pa2);
452__isl_give isl_map *isl_pw_aff_lt_map(__isl_take isl_pw_aff *pa1,
453 __isl_take isl_pw_aff *pa2);
454__isl_give isl_map *isl_pw_aff_ge_map(__isl_take isl_pw_aff *pa1,
455 __isl_take isl_pw_aff *pa2);
456__isl_give isl_map *isl_pw_aff_gt_map(__isl_take isl_pw_aff *pa1,
457 __isl_take isl_pw_aff *pa2);
458
459__isl_export
460__isl_give isl_pw_aff *isl_pw_aff_bind_domain(__isl_take isl_pw_aff *pa,
461 __isl_take isl_multi_id *tuple);
462__isl_export
463__isl_give isl_pw_aff *isl_pw_aff_bind_domain_wrapped_domain(
464 __isl_take isl_pw_aff *pa, __isl_take isl_multi_id *tuple);
465__isl_overload
466__isl_give isl_set *isl_pw_aff_bind_id(__isl_take isl_pw_aff *pa,
467 __isl_take isl_id *id);
468
469__isl_constructor
470__isl_give isl_pw_aff *isl_pw_aff_read_from_str(isl_ctx *ctx, const char *str);
471__isl_give char *isl_pw_aff_to_str(__isl_keep isl_pw_aff *pa);
472__isl_give isl_printer *isl_printer_print_pw_aff(__isl_take isl_printer *p,
473 __isl_keep isl_pw_aff *pwaff);
474void isl_pw_aff_dump(__isl_keep isl_pw_aff *pwaff);
475
476__isl_give isl_pw_aff *isl_pw_aff_list_min(__isl_take isl_pw_aff_list *list);
477__isl_give isl_pw_aff *isl_pw_aff_list_max(__isl_take isl_pw_aff_list *list);
478
479__isl_give isl_set *isl_pw_aff_list_eq_set(__isl_take isl_pw_aff_list *list1,
480 __isl_take isl_pw_aff_list *list2);
481__isl_give isl_set *isl_pw_aff_list_ne_set(__isl_take isl_pw_aff_list *list1,
482 __isl_take isl_pw_aff_list *list2);
483__isl_give isl_set *isl_pw_aff_list_le_set(__isl_take isl_pw_aff_list *list1,
484 __isl_take isl_pw_aff_list *list2);
485__isl_give isl_set *isl_pw_aff_list_lt_set(__isl_take isl_pw_aff_list *list1,
486 __isl_take isl_pw_aff_list *list2);
487__isl_give isl_set *isl_pw_aff_list_ge_set(__isl_take isl_pw_aff_list *list1,
488 __isl_take isl_pw_aff_list *list2);
489__isl_give isl_set *isl_pw_aff_list_gt_set(__isl_take isl_pw_aff_list *list1,
490 __isl_take isl_pw_aff_list *list2);
491
492ISL_DECLARE_MULTI(aff)
493ISL_DECLARE_MULTI_IDENTITY(aff)
494ISL_DECLARE_MULTI_CMP(aff)
495ISL_DECLARE_MULTI_ARITH(aff)
496ISL_DECLARE_MULTI_ADD_CONSTANT(aff)
497ISL_DECLARE_MULTI_ZERO(aff)
498ISL_DECLARE_MULTI_NAN(aff)
499ISL_DECLARE_MULTI_DIMS(aff)
500ISL_DECLARE_MULTI_INSERT_DOMAIN(aff)
501ISL_DECLARE_MULTI_LOCALS(aff)
502ISL_DECLARE_MULTI_DIM_ID(aff)
503ISL_DECLARE_MULTI_TUPLE_ID(aff)
504ISL_DECLARE_MULTI_WITH_DOMAIN(aff)
505ISL_DECLARE_MULTI_BIND_DOMAIN(aff)
506ISL_DECLARE_MULTI_UNBIND_PARAMS(aff)
507
508__isl_constructor
509__isl_give isl_multi_aff *isl_multi_aff_from_aff(__isl_take isl_aff *aff);
510__isl_export
511__isl_give isl_multi_aff *isl_multi_aff_domain_map(__isl_take isl_space *space);
512__isl_export
513__isl_give isl_multi_aff *isl_space_domain_map_multi_aff(
514 __isl_take isl_space *space);
515__isl_export
516__isl_give isl_multi_aff *isl_multi_aff_range_map(__isl_take isl_space *space);
517__isl_export
518__isl_give isl_multi_aff *isl_space_range_map_multi_aff(
519 __isl_take isl_space *space);
520__isl_give isl_multi_aff *isl_multi_aff_project_out_map(
521 __isl_take isl_space *space, enum isl_dim_type type,
522 unsigned first, unsigned n);
523
524__isl_overload
525__isl_give isl_multi_aff *isl_multi_aff_multi_val_on_domain_space(
526 __isl_take isl_space *space, __isl_take isl_multi_val *mv);
527__isl_overload
528__isl_give isl_multi_aff *isl_space_multi_aff_on_domain_multi_val(
529 __isl_take isl_space *space, __isl_take isl_multi_val *mv);
530__isl_give isl_multi_aff *isl_multi_aff_multi_val_on_space(
531 __isl_take isl_space *space, __isl_take isl_multi_val *mv);
532
533__isl_export
534__isl_give isl_multi_val *isl_multi_aff_get_constant_multi_val(
535 __isl_keep isl_multi_aff *ma);
536
537__isl_export
538__isl_give isl_multi_aff *isl_multi_aff_floor(__isl_take isl_multi_aff *ma);
539
540__isl_export
541__isl_give isl_multi_aff *isl_multi_aff_gist_params(
542 __isl_take isl_multi_aff *maff, __isl_take isl_set *context);
543__isl_export
544__isl_give isl_multi_aff *isl_multi_aff_gist(__isl_take isl_multi_aff *maff,
545 __isl_take isl_set *context);
546
547__isl_give isl_multi_aff *isl_multi_aff_lift(__isl_take isl_multi_aff *maff,
548 __isl_give isl_local_space **ls);
549
550__isl_overload
551__isl_give isl_multi_aff *isl_multi_aff_pullback_multi_aff(
552 __isl_take isl_multi_aff *ma1, __isl_take isl_multi_aff *ma2);
553
554__isl_give isl_multi_aff *isl_multi_aff_move_dims(__isl_take isl_multi_aff *ma,
555 enum isl_dim_type dst_type, unsigned dst_pos,
556 enum isl_dim_type src_type, unsigned src_pos, unsigned n);
557
558__isl_give isl_set *isl_multi_aff_lex_lt_set(__isl_take isl_multi_aff *ma1,
559 __isl_take isl_multi_aff *ma2);
560__isl_give isl_set *isl_multi_aff_lex_le_set(__isl_take isl_multi_aff *ma1,
561 __isl_take isl_multi_aff *ma2);
562__isl_give isl_set *isl_multi_aff_lex_gt_set(__isl_take isl_multi_aff *ma1,
563 __isl_take isl_multi_aff *ma2);
564__isl_give isl_set *isl_multi_aff_lex_ge_set(__isl_take isl_multi_aff *ma1,
565 __isl_take isl_multi_aff *ma2);
566
567__isl_export
568__isl_give isl_basic_set *isl_multi_aff_bind(__isl_take isl_multi_aff *ma,
569 __isl_take isl_multi_id *tuple);
570
571__isl_give char *isl_multi_aff_to_str(__isl_keep isl_multi_aff *ma);
572__isl_give isl_printer *isl_printer_print_multi_aff(__isl_take isl_printer *p,
573 __isl_keep isl_multi_aff *maff);
574
575__isl_constructor
576__isl_give isl_multi_aff *isl_multi_aff_read_from_str(isl_ctx *ctx,
577 const char *str);
578void isl_multi_aff_dump(__isl_keep isl_multi_aff *maff);
579
580ISL_DECLARE_MULTI(pw_aff)
581ISL_DECLARE_MULTI_IDENTITY(pw_aff)
582ISL_DECLARE_MULTI_ARITH(pw_aff)
583ISL_DECLARE_MULTI_MIN_MAX(pw_aff)
584ISL_DECLARE_MULTI_ADD_CONSTANT(pw_aff)
585ISL_DECLARE_MULTI_ZERO(pw_aff)
586ISL_DECLARE_MULTI_NAN(pw_aff)
587ISL_DECLARE_MULTI_DIMS(pw_aff)
588ISL_DECLARE_MULTI_DIM_ID(pw_aff)
589ISL_DECLARE_MULTI_INSERT_DOMAIN(pw_aff)
590ISL_DECLARE_MULTI_TUPLE_ID(pw_aff)
591ISL_DECLARE_MULTI_WITH_DOMAIN(pw_aff)
592ISL_DECLARE_MULTI_BIND_DOMAIN(pw_aff)
593ISL_DECLARE_MULTI_PARAM(pw_aff)
594ISL_DECLARE_MULTI_UNBIND_PARAMS(pw_aff)
595
596__isl_export
597__isl_give isl_pw_multi_aff *isl_pw_multi_aff_zero(__isl_take isl_space *space);
598__isl_overload
599__isl_give isl_pw_multi_aff *isl_pw_multi_aff_identity_on_domain_space(
600 __isl_take isl_space *space);
601__isl_export
602__isl_give isl_pw_multi_aff *isl_space_identity_pw_multi_aff_on_domain(
603 __isl_take isl_space *space);
604__isl_give isl_pw_multi_aff *isl_pw_multi_aff_identity(
605 __isl_take isl_space *space);
606__isl_export
607__isl_give isl_pw_multi_aff *isl_pw_multi_aff_domain_map(
608 __isl_take isl_space *space);
609__isl_export
610__isl_give isl_pw_multi_aff *isl_space_domain_map_pw_multi_aff(
611 __isl_take isl_space *space);
612__isl_export
613__isl_give isl_pw_multi_aff *isl_pw_multi_aff_range_map(
614 __isl_take isl_space *space);
615__isl_export
616__isl_give isl_pw_multi_aff *isl_space_range_map_pw_multi_aff(
617 __isl_take isl_space *space);
618__isl_give isl_pw_multi_aff *isl_pw_multi_aff_project_out_map(
619 __isl_take isl_space *space, enum isl_dim_type type,
620 unsigned first, unsigned n);
621__isl_export
622__isl_give isl_pw_multi_aff *isl_multi_aff_to_pw_multi_aff(
623 __isl_take isl_multi_aff *ma);
624__isl_constructor
625__isl_give isl_pw_multi_aff *isl_pw_multi_aff_from_multi_aff(
626 __isl_take isl_multi_aff *ma);
627__isl_constructor
628__isl_give isl_pw_multi_aff *isl_pw_multi_aff_from_pw_aff(
629 __isl_take isl_pw_aff *pa);
630__isl_give isl_pw_multi_aff *isl_pw_multi_aff_alloc(__isl_take isl_set *set,
631 __isl_take isl_multi_aff *maff);
632__isl_give isl_pw_multi_aff *isl_pw_multi_aff_copy(
633 __isl_keep isl_pw_multi_aff *pma);
634__isl_null isl_pw_multi_aff *isl_pw_multi_aff_free(
635 __isl_take isl_pw_multi_aff *pma);
636
637isl_size isl_pw_multi_aff_dim(__isl_keep isl_pw_multi_aff *pma,
638 enum isl_dim_type type);
639__isl_export
640isl_bool isl_pw_multi_aff_involves_locals(__isl_keep isl_pw_multi_aff *pma);
641isl_bool isl_pw_multi_aff_involves_param_id(__isl_keep isl_pw_multi_aff *pma,
642 __isl_keep isl_id *id);
643isl_bool isl_pw_multi_aff_involves_dims(__isl_keep isl_pw_multi_aff *pma,
644 enum isl_dim_type type, unsigned first, unsigned n);
645__isl_export
646__isl_give isl_pw_aff *isl_pw_multi_aff_get_at(
647 __isl_keep isl_pw_multi_aff *pma, int pos);
648__isl_give isl_pw_aff *isl_pw_multi_aff_get_pw_aff(
649 __isl_keep isl_pw_multi_aff *pma, int pos);
650__isl_give isl_pw_multi_aff *isl_pw_multi_aff_set_pw_aff(
651 __isl_take isl_pw_multi_aff *pma, unsigned pos,
652 __isl_take isl_pw_aff *pa);
653
654isl_ctx *isl_pw_multi_aff_get_ctx(__isl_keep isl_pw_multi_aff *pma);
655__isl_give isl_space *isl_pw_multi_aff_get_domain_space(
656 __isl_keep isl_pw_multi_aff *pma);
657__isl_export
658__isl_give isl_space *isl_pw_multi_aff_get_space(
659 __isl_keep isl_pw_multi_aff *pma);
660isl_bool isl_pw_multi_aff_has_tuple_name(__isl_keep isl_pw_multi_aff *pma,
661 enum isl_dim_type type);
662const char *isl_pw_multi_aff_get_tuple_name(__isl_keep isl_pw_multi_aff *pma,
663 enum isl_dim_type type);
664__isl_export
665__isl_give isl_id *isl_pw_multi_aff_get_range_tuple_id(
666 __isl_keep isl_pw_multi_aff *pma);
667__isl_give isl_id *isl_pw_multi_aff_get_tuple_id(
668 __isl_keep isl_pw_multi_aff *pma, enum isl_dim_type type);
669__isl_export
670isl_bool isl_pw_multi_aff_has_range_tuple_id(__isl_keep isl_pw_multi_aff *pma);
671isl_bool isl_pw_multi_aff_has_tuple_id(__isl_keep isl_pw_multi_aff *pma,
672 enum isl_dim_type type);
673__isl_give isl_pw_multi_aff *isl_pw_multi_aff_set_tuple_id(
674 __isl_take isl_pw_multi_aff *pma,
675 enum isl_dim_type type, __isl_take isl_id *id);
676__isl_overload
677__isl_give isl_pw_multi_aff *isl_pw_multi_aff_set_range_tuple_id(
678 __isl_take isl_pw_multi_aff *pma, __isl_take isl_id *id);
679__isl_give isl_pw_multi_aff *isl_pw_multi_aff_reset_tuple_id(
680 __isl_take isl_pw_multi_aff *pma, enum isl_dim_type type);
681__isl_give isl_pw_multi_aff *isl_pw_multi_aff_reset_user(
682 __isl_take isl_pw_multi_aff *pma);
683
684int isl_pw_multi_aff_find_dim_by_name(__isl_keep isl_pw_multi_aff *pma,
685 enum isl_dim_type type, const char *name);
686
687__isl_give isl_pw_multi_aff *isl_pw_multi_aff_drop_dims(
688 __isl_take isl_pw_multi_aff *pma,
689 enum isl_dim_type type, unsigned first, unsigned n);
690
691__isl_export
692__isl_give isl_set *isl_pw_multi_aff_domain(__isl_take isl_pw_multi_aff *pma);
693
694__isl_give isl_pw_multi_aff *isl_pw_multi_aff_empty(__isl_take isl_space *space);
695__isl_give isl_pw_multi_aff *isl_pw_multi_aff_from_domain(
696 __isl_take isl_set *set);
697
698__isl_export
699__isl_give isl_pw_multi_aff *isl_pw_multi_aff_multi_val_on_domain(
700 __isl_take isl_set *domain, __isl_take isl_multi_val *mv);
701__isl_overload
702__isl_give isl_pw_multi_aff *isl_set_pw_multi_aff_on_domain_multi_val(
703 __isl_take isl_set *domain, __isl_take isl_multi_val *mv);
704
705const char *isl_pw_multi_aff_get_dim_name(__isl_keep isl_pw_multi_aff *pma,
706 enum isl_dim_type type, unsigned pos);
707__isl_give isl_id *isl_pw_multi_aff_get_dim_id(
708 __isl_keep isl_pw_multi_aff *pma, enum isl_dim_type type,
709 unsigned pos);
710__isl_give isl_pw_multi_aff *isl_pw_multi_aff_set_dim_id(
711 __isl_take isl_pw_multi_aff *pma,
712 enum isl_dim_type type, unsigned pos, __isl_take isl_id *id);
713
714isl_bool isl_pw_multi_aff_involves_nan(__isl_keep isl_pw_multi_aff *pma);
715isl_bool isl_pw_multi_aff_plain_is_equal(__isl_keep isl_pw_multi_aff *pma1,
716 __isl_keep isl_pw_multi_aff *pma2);
717isl_bool isl_pw_multi_aff_is_equal(__isl_keep isl_pw_multi_aff *pma1,
718 __isl_keep isl_pw_multi_aff *pma2);
719
720__isl_give isl_pw_multi_aff *isl_pw_multi_aff_fix_si(
721 __isl_take isl_pw_multi_aff *pma, enum isl_dim_type type,
722 unsigned pos, int value);
723
724__isl_export
725__isl_give isl_pw_multi_aff *isl_pw_multi_aff_union_add(
726 __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
727
728__isl_give isl_pw_multi_aff *isl_pw_multi_aff_neg(
729 __isl_take isl_pw_multi_aff *pma);
730
731__isl_export
732__isl_give isl_pw_multi_aff *isl_pw_multi_aff_add(
733 __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
734__isl_export
735__isl_give isl_pw_multi_aff *isl_pw_multi_aff_sub(
736 __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
737
738__isl_overload
739__isl_give isl_pw_multi_aff *isl_pw_multi_aff_add_constant_val(
740 __isl_take isl_pw_multi_aff *pma, __isl_take isl_val *v);
741__isl_overload
742__isl_give isl_pw_multi_aff *isl_pw_multi_aff_add_constant_multi_val(
743 __isl_take isl_pw_multi_aff *pma, __isl_take isl_multi_val *mv);
744__isl_overload
745__isl_give isl_pw_multi_aff *isl_pw_multi_aff_scale_val(
746 __isl_take isl_pw_multi_aff *pma, __isl_take isl_val *v);
747__isl_overload
748__isl_give isl_pw_multi_aff *isl_pw_multi_aff_scale_down_val(
749 __isl_take isl_pw_multi_aff *pma, __isl_take isl_val *v);
750__isl_overload
751__isl_give isl_pw_multi_aff *isl_pw_multi_aff_scale_multi_val(
752 __isl_take isl_pw_multi_aff *pma, __isl_take isl_multi_val *mv);
753__isl_overload
754__isl_give isl_pw_multi_aff *isl_pw_multi_aff_scale_down_multi_val(
755 __isl_take isl_pw_multi_aff *pma, __isl_take isl_multi_val *mv);
756
757__isl_give isl_pw_multi_aff *isl_pw_multi_aff_union_lexmin(
758 __isl_take isl_pw_multi_aff *pma1,
759 __isl_take isl_pw_multi_aff *pma2);
760__isl_give isl_pw_multi_aff *isl_pw_multi_aff_union_lexmax(
761 __isl_take isl_pw_multi_aff *pma1,
762 __isl_take isl_pw_multi_aff *pma2);
763
764__isl_give isl_multi_aff *isl_multi_aff_flatten_domain(
765 __isl_take isl_multi_aff *ma);
766
767__isl_export
768__isl_give isl_pw_multi_aff *isl_pw_multi_aff_range_product(
769 __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
770__isl_export
771__isl_give isl_pw_multi_aff *isl_pw_multi_aff_flat_range_product(
772 __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
773__isl_export
774__isl_give isl_pw_multi_aff *isl_pw_multi_aff_product(
775 __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
776__isl_export
777__isl_give isl_pw_multi_aff *isl_pw_multi_aff_range_factor_domain(
778 __isl_take isl_pw_multi_aff *pma);
779__isl_export
780__isl_give isl_pw_multi_aff *isl_pw_multi_aff_range_factor_range(
781 __isl_take isl_pw_multi_aff *pma);
782
783__isl_export
784__isl_give isl_pw_multi_aff *isl_pw_multi_aff_intersect_params(
785 __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
786__isl_export
787__isl_give isl_pw_multi_aff *isl_pw_multi_aff_intersect_domain(
788 __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
789__isl_give isl_pw_multi_aff *isl_pw_multi_aff_intersect_domain_wrapped_domain(
790 __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
791__isl_give isl_pw_multi_aff *isl_pw_multi_aff_intersect_domain_wrapped_range(
792 __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
793__isl_export
794__isl_give isl_pw_multi_aff *isl_pw_multi_aff_subtract_domain(
795 __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
796
797__isl_export
798__isl_give isl_pw_multi_aff *isl_pw_multi_aff_insert_domain(
799 __isl_take isl_pw_multi_aff *pma, __isl_take isl_space *domain);
800__isl_give isl_pw_multi_aff *isl_pw_multi_aff_project_domain_on_params(
801 __isl_take isl_pw_multi_aff *pma);
802
803__isl_give isl_pw_multi_aff *isl_pw_multi_aff_align_params(
804 __isl_take isl_pw_multi_aff *pma, __isl_take isl_space *model);
805__isl_give isl_pw_multi_aff *isl_pw_multi_aff_drop_unused_params(
806 __isl_take isl_pw_multi_aff *pma);
807
808__isl_export
809__isl_give isl_pw_multi_aff *isl_pw_multi_aff_coalesce(
810 __isl_take isl_pw_multi_aff *pma);
811__isl_export
812__isl_give isl_pw_multi_aff *isl_pw_multi_aff_gist_params(
813 __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
814__isl_export
815__isl_give isl_pw_multi_aff *isl_pw_multi_aff_gist(
816 __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
817
818__isl_overload
819__isl_give isl_pw_multi_aff *isl_pw_multi_aff_pullback_multi_aff(
820 __isl_take isl_pw_multi_aff *pma, __isl_take isl_multi_aff *ma);
821__isl_overload
822__isl_give isl_pw_multi_aff *isl_pw_multi_aff_pullback_pw_multi_aff(
823 __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
824__isl_overload
825__isl_give isl_pw_multi_aff *
826isl_pw_multi_aff_preimage_domain_wrapped_domain_pw_multi_aff(
827 __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
828
829__isl_export
830isl_size isl_pw_multi_aff_n_piece(__isl_keep isl_pw_multi_aff *pma);
831__isl_export
832isl_stat isl_pw_multi_aff_foreach_piece(__isl_keep isl_pw_multi_aff *pma,
833 isl_stat (*fn)(__isl_take isl_set *set, __isl_take isl_multi_aff *maff,
834 void *user), void *user);
835isl_bool isl_pw_multi_aff_every_piece(__isl_keep isl_pw_multi_aff *pma,
836 isl_bool (*test)(__isl_keep isl_set *set, __isl_keep isl_multi_aff *ma,
837 void *user), void *user);
838__isl_export
839isl_bool isl_pw_multi_aff_isa_multi_aff(__isl_keep isl_pw_multi_aff *pma);
840__isl_export
841__isl_give isl_multi_aff *isl_pw_multi_aff_as_multi_aff(
842 __isl_take isl_pw_multi_aff *pma);
843
844__isl_export
845__isl_give isl_map *isl_pw_multi_aff_as_map(__isl_take isl_pw_multi_aff *pma);
846__isl_give isl_map *isl_map_from_pw_multi_aff(__isl_take isl_pw_multi_aff *pma);
847__isl_export
848__isl_give isl_set *isl_pw_multi_aff_as_set(__isl_take isl_pw_multi_aff *pma);
849__isl_give isl_set *isl_set_from_pw_multi_aff(__isl_take isl_pw_multi_aff *pma);
850
851__isl_give char *isl_pw_multi_aff_to_str(__isl_keep isl_pw_multi_aff *pma);
852__isl_give isl_printer *isl_printer_print_pw_multi_aff(__isl_take isl_printer *p,
853 __isl_keep isl_pw_multi_aff *pma);
854
855__isl_export
856__isl_give isl_pw_multi_aff *isl_set_as_pw_multi_aff(__isl_take isl_set *set);
857__isl_give isl_pw_multi_aff *isl_pw_multi_aff_from_set(__isl_take isl_set *set);
858__isl_export
859__isl_give isl_pw_multi_aff *isl_map_as_pw_multi_aff(__isl_take isl_map *map);
860__isl_give isl_pw_multi_aff *isl_pw_multi_aff_from_map(__isl_take isl_map *map);
861
862__isl_export
863__isl_give isl_pw_multi_aff *isl_pw_multi_aff_bind_domain(
864 __isl_take isl_pw_multi_aff *pma, __isl_take isl_multi_id *tuple);
865__isl_export
866__isl_give isl_pw_multi_aff *isl_pw_multi_aff_bind_domain_wrapped_domain(
867 __isl_take isl_pw_multi_aff *pma, __isl_take isl_multi_id *tuple);
868
869__isl_constructor
870__isl_give isl_pw_multi_aff *isl_pw_multi_aff_read_from_str(isl_ctx *ctx,
871 const char *str);
872void isl_pw_multi_aff_dump(__isl_keep isl_pw_multi_aff *pma);
873
874
875__isl_overload
876__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_empty_ctx(
877 isl_ctx *ctx);
878__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_empty_space(
879 __isl_take isl_space *space);
880__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_empty(
881 __isl_take isl_space *space);
882__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_aff(
883 __isl_take isl_aff *aff);
884__isl_constructor
885__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_multi_aff(
886 __isl_take isl_multi_aff *ma);
887__isl_export
888__isl_give isl_union_pw_multi_aff *isl_pw_multi_aff_to_union_pw_multi_aff(
889 __isl_take isl_pw_multi_aff *pma);
890__isl_constructor
891__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_pw_multi_aff(
892 __isl_take isl_pw_multi_aff *pma);
893__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_domain(
894 __isl_take isl_union_set *uset);
895__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_multi_val_on_domain(
896 __isl_take isl_union_set *domain, __isl_take isl_multi_val *mv);
897__isl_give isl_union_pw_aff *isl_union_pw_aff_param_on_domain_id(
898 __isl_take isl_union_set *domain, __isl_take isl_id *id);
899__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_copy(
900 __isl_keep isl_union_pw_multi_aff *upma);
901__isl_null isl_union_pw_multi_aff *isl_union_pw_multi_aff_free(
902 __isl_take isl_union_pw_multi_aff *upma);
903
904__isl_give isl_union_pw_multi_aff *isl_union_set_identity_union_pw_multi_aff(
905 __isl_take isl_union_set *uset);
906
907__isl_give isl_union_pw_aff *isl_union_pw_multi_aff_get_union_pw_aff(
908 __isl_keep isl_union_pw_multi_aff *upma, int pos);
909
910__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_add_pw_multi_aff(
911 __isl_take isl_union_pw_multi_aff *upma,
912 __isl_take isl_pw_multi_aff *pma);
913
914isl_ctx *isl_union_pw_multi_aff_get_ctx(
915 __isl_keep isl_union_pw_multi_aff *upma);
916__isl_export
917__isl_give isl_space *isl_union_pw_multi_aff_get_space(
918 __isl_keep isl_union_pw_multi_aff *upma);
919__isl_export
920__isl_give isl_pw_multi_aff_list *isl_union_pw_multi_aff_get_pw_multi_aff_list(
921 __isl_keep isl_union_pw_multi_aff *upma);
922
923isl_size isl_union_pw_multi_aff_dim(__isl_keep isl_union_pw_multi_aff *upma,
924 enum isl_dim_type type);
925__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_set_dim_name(
926 __isl_take isl_union_pw_multi_aff *upma,
927 enum isl_dim_type type, unsigned pos, const char *s);
928
929int isl_union_pw_multi_aff_find_dim_by_name(
930 __isl_keep isl_union_pw_multi_aff *upma, enum isl_dim_type type,
931 const char *name);
932
933__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_drop_dims(
934 __isl_take isl_union_pw_multi_aff *upma,
935 enum isl_dim_type type, unsigned first, unsigned n);
936__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_reset_user(
937 __isl_take isl_union_pw_multi_aff *upma);
938
939__isl_export
940__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_coalesce(
941 __isl_take isl_union_pw_multi_aff *upma);
942__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_gist_params(
943 __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_set *context);
944__isl_export
945__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_gist(
946 __isl_take isl_union_pw_multi_aff *upma,
947 __isl_take isl_union_set *context);
948
949__isl_overload
950__isl_give isl_union_pw_multi_aff *
951isl_union_pw_multi_aff_pullback_union_pw_multi_aff(
952 __isl_take isl_union_pw_multi_aff *upma1,
953 __isl_take isl_union_pw_multi_aff *upma2);
954__isl_overload
955__isl_give isl_union_pw_multi_aff *
956isl_union_pw_multi_aff_apply_union_pw_multi_aff(
957 __isl_take isl_union_pw_multi_aff *upma1,
958 __isl_take isl_union_pw_multi_aff *upma2);
959__isl_overload
960__isl_give isl_union_pw_multi_aff *
961isl_union_pw_multi_aff_preimage_domain_wrapped_domain_union_pw_multi_aff(
962 __isl_take isl_union_pw_multi_aff *upma1,
963 __isl_take isl_union_pw_multi_aff *upma2);
964
965__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_align_params(
966 __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_space *model);
967
968isl_size isl_union_pw_multi_aff_n_pw_multi_aff(
969 __isl_keep isl_union_pw_multi_aff *upma);
970
971isl_stat isl_union_pw_multi_aff_foreach_pw_multi_aff(
972 __isl_keep isl_union_pw_multi_aff *upma,
973 isl_stat (*fn)(__isl_take isl_pw_multi_aff *pma, void *user),
974 void *user);
975isl_bool isl_union_pw_multi_aff_every_pw_multi_aff(
976 __isl_keep isl_union_pw_multi_aff *upma,
977 isl_bool (*test)(__isl_keep isl_pw_multi_aff *pma, void *user),
978 void *user);
979__isl_export
980__isl_give isl_pw_multi_aff *isl_union_pw_multi_aff_extract_pw_multi_aff(
981 __isl_keep isl_union_pw_multi_aff *upma, __isl_take isl_space *space);
982__isl_export
983isl_bool isl_union_pw_multi_aff_isa_pw_multi_aff(
984 __isl_keep isl_union_pw_multi_aff *upma);
985__isl_export
986__isl_give isl_pw_multi_aff *isl_union_pw_multi_aff_as_pw_multi_aff(
987 __isl_take isl_union_pw_multi_aff *upma);
988
989__isl_export
990isl_bool isl_union_pw_multi_aff_plain_is_empty(
991 __isl_keep isl_union_pw_multi_aff *upma);
992__isl_export
993isl_bool isl_union_pw_multi_aff_involves_locals(
994 __isl_keep isl_union_pw_multi_aff *upma);
995isl_bool isl_union_pw_multi_aff_involves_nan(
996 __isl_keep isl_union_pw_multi_aff *upma);
997isl_bool isl_union_pw_multi_aff_plain_is_equal(
998 __isl_keep isl_union_pw_multi_aff *upma1,
999 __isl_keep isl_union_pw_multi_aff *upma2);
1000
1001__isl_export
1002__isl_give isl_union_set *isl_union_pw_multi_aff_domain(
1003 __isl_take isl_union_pw_multi_aff *upma);
1004
1005__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_neg(
1006 __isl_take isl_union_pw_multi_aff *upma);
1007
1008__isl_export
1009__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_add(
1010 __isl_take isl_union_pw_multi_aff *upma1,
1011 __isl_take isl_union_pw_multi_aff *upma2);
1012__isl_export
1013__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_union_add(
1014 __isl_take isl_union_pw_multi_aff *upma1,
1015 __isl_take isl_union_pw_multi_aff *upma2);
1016__isl_export
1017__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_sub(
1018 __isl_take isl_union_pw_multi_aff *upma1,
1019 __isl_take isl_union_pw_multi_aff *upma2);
1020
1021__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_scale_val(
1022 __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_val *val);
1023__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_scale_down_val(
1024 __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_val *val);
1025__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_scale_multi_val(
1026 __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_multi_val *mv);
1027
1028__isl_export
1029__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_range_product(
1030 __isl_take isl_union_pw_multi_aff *upma1,
1031 __isl_take isl_union_pw_multi_aff *upma2);
1032__isl_export
1033__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_flat_range_product(
1034 __isl_take isl_union_pw_multi_aff *upma1,
1035 __isl_take isl_union_pw_multi_aff *upma2);
1036__isl_export
1037__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_range_factor_domain(
1038 __isl_take isl_union_pw_multi_aff *upma);
1039__isl_export
1040__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_range_factor_range(
1041 __isl_take isl_union_pw_multi_aff *upma);
1042
1043__isl_export
1044__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_intersect_params(
1045 __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_set *set);
1046__isl_overload
1047__isl_give isl_union_pw_multi_aff *
1048isl_union_pw_multi_aff_intersect_domain_union_set(
1049 __isl_take isl_union_pw_multi_aff *upma,
1050 __isl_take isl_union_set *uset);
1051__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_intersect_domain(
1052 __isl_take isl_union_pw_multi_aff *upma,
1053 __isl_take isl_union_set *uset);
1054__isl_overload
1055__isl_give isl_union_pw_multi_aff *
1056isl_union_pw_multi_aff_intersect_domain_space(
1057 __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_space *space);
1058__isl_export
1059__isl_give isl_union_pw_multi_aff *
1060isl_union_pw_multi_aff_intersect_domain_wrapped_domain(
1061 __isl_take isl_union_pw_multi_aff *upma,
1062 __isl_take isl_union_set *uset);
1063__isl_export
1064__isl_give isl_union_pw_multi_aff *
1065isl_union_pw_multi_aff_intersect_domain_wrapped_range(
1066 __isl_take isl_union_pw_multi_aff *upma,
1067 __isl_take isl_union_set *uset);
1068__isl_overload
1069__isl_give isl_union_pw_multi_aff *
1070isl_union_pw_multi_aff_subtract_domain_union_set(
1071 __isl_take isl_union_pw_multi_aff *upma,
1072 __isl_take isl_union_set *uset);
1073__isl_overload
1074__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_subtract_domain_space(
1075 __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_space *space);
1076__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_subtract_domain(
1077 __isl_take isl_union_pw_multi_aff *upma,
1078 __isl_take isl_union_set *uset);
1079
1080__isl_export
1081__isl_give isl_union_map *isl_union_pw_multi_aff_as_union_map(
1082 __isl_take isl_union_pw_multi_aff *upma);
1083__isl_overload
1084__isl_give isl_union_map *isl_union_map_from_union_pw_multi_aff(
1085 __isl_take isl_union_pw_multi_aff *upma);
1086
1087__isl_give isl_printer *isl_printer_print_union_pw_multi_aff(
1088 __isl_take isl_printer *p, __isl_keep isl_union_pw_multi_aff *upma);
1089
1090__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_union_set(
1091 __isl_take isl_union_set *uset);
1092__isl_export
1093__isl_give isl_union_pw_multi_aff *isl_union_map_as_union_pw_multi_aff(
1094 __isl_take isl_union_map *umap);
1095__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_union_map(
1096 __isl_take isl_union_map *umap);
1097
1098__isl_constructor
1099__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_read_from_str(
1100 isl_ctx *ctx, const char *str);
1101void isl_union_pw_multi_aff_dump(__isl_keep isl_union_pw_multi_aff *upma);
1102__isl_give char *isl_union_pw_multi_aff_to_str(
1103 __isl_keep isl_union_pw_multi_aff *upma);
1104
1105uint32_t isl_multi_pw_aff_get_hash(__isl_keep isl_multi_pw_aff *mpa);
1106
1107__isl_constructor
1108__isl_give isl_multi_pw_aff *isl_multi_pw_aff_from_aff(__isl_take isl_aff *aff);
1109__isl_export
1110__isl_give isl_multi_pw_aff *isl_multi_aff_to_multi_pw_aff(
1111 __isl_take isl_multi_aff *ma);
1112__isl_constructor
1113__isl_give isl_multi_pw_aff *isl_multi_pw_aff_from_multi_aff(
1114 __isl_take isl_multi_aff *ma);
1115__isl_constructor
1116__isl_give isl_multi_pw_aff *isl_multi_pw_aff_from_pw_aff(
1117 __isl_take isl_pw_aff *pa);
1118__isl_export
1119__isl_give isl_set *isl_multi_pw_aff_domain(__isl_take isl_multi_pw_aff *mpa);
1120__isl_export
1121__isl_give isl_multi_pw_aff *isl_multi_pw_aff_intersect_params(
1122 __isl_take isl_multi_pw_aff *mpa, __isl_take isl_set *set);
1123__isl_export
1124__isl_give isl_multi_pw_aff *isl_multi_pw_aff_intersect_domain(
1125 __isl_take isl_multi_pw_aff *mpa, __isl_take isl_set *domain);
1126
1127__isl_export
1128__isl_give isl_multi_pw_aff *isl_multi_pw_aff_coalesce(
1129 __isl_take isl_multi_pw_aff *mpa);
1130__isl_export
1131__isl_give isl_multi_pw_aff *isl_multi_pw_aff_gist(
1132 __isl_take isl_multi_pw_aff *mpa, __isl_take isl_set *set);
1133__isl_give isl_multi_pw_aff *isl_multi_pw_aff_gist_params(
1134 __isl_take isl_multi_pw_aff *mpa, __isl_take isl_set *set);
1135
1136isl_bool isl_multi_pw_aff_is_cst(__isl_keep isl_multi_pw_aff *mpa);
1137isl_bool isl_multi_pw_aff_is_equal(__isl_keep isl_multi_pw_aff *mpa1,
1138 __isl_keep isl_multi_pw_aff *mpa2);
1139
1140__isl_overload
1141__isl_give isl_multi_pw_aff *isl_multi_pw_aff_pullback_multi_aff(
1142 __isl_take isl_multi_pw_aff *mpa, __isl_take isl_multi_aff *ma);
1143__isl_overload
1144__isl_give isl_multi_pw_aff *isl_multi_pw_aff_pullback_pw_multi_aff(
1145 __isl_take isl_multi_pw_aff *mpa, __isl_take isl_pw_multi_aff *pma);
1146__isl_overload
1147__isl_give isl_multi_pw_aff *isl_multi_pw_aff_pullback_multi_pw_aff(
1148 __isl_take isl_multi_pw_aff *mpa1, __isl_take isl_multi_pw_aff *mpa2);
1149
1150__isl_export
1151__isl_give isl_multi_pw_aff *isl_multi_pw_aff_union_add(
1152 __isl_take isl_multi_pw_aff *mpa1, __isl_take isl_multi_pw_aff *mpa2);
1153
1154__isl_give isl_multi_pw_aff *isl_multi_pw_aff_move_dims(
1155 __isl_take isl_multi_pw_aff *pma,
1156 enum isl_dim_type dst_type, unsigned dst_pos,
1157 enum isl_dim_type src_type, unsigned src_pos, unsigned n);
1158
1159__isl_export
1160isl_bool isl_multi_pw_aff_isa_multi_aff(__isl_keep isl_multi_pw_aff *mpa);
1161__isl_export
1162__isl_give isl_multi_aff *isl_multi_pw_aff_as_multi_aff(
1163 __isl_take isl_multi_pw_aff *mpa);
1164
1165__isl_export
1166__isl_give isl_set *isl_multi_pw_aff_as_set(__isl_take isl_multi_pw_aff *mpa);
1167__isl_give isl_set *isl_set_from_multi_pw_aff(__isl_take isl_multi_pw_aff *mpa);
1168__isl_export
1169__isl_give isl_map *isl_multi_pw_aff_as_map(__isl_take isl_multi_pw_aff *mpa);
1170__isl_give isl_map *isl_map_from_multi_pw_aff(__isl_take isl_multi_pw_aff *mpa);
1171__isl_give isl_pw_multi_aff *isl_pw_multi_aff_from_multi_pw_aff(
1172 __isl_take isl_multi_pw_aff *mpa);
1173__isl_export
1174__isl_give isl_multi_pw_aff *isl_pw_multi_aff_to_multi_pw_aff(
1175 __isl_take isl_pw_multi_aff *pma);
1176__isl_constructor
1177__isl_give isl_multi_pw_aff *isl_multi_pw_aff_from_pw_multi_aff(
1178 __isl_take isl_pw_multi_aff *pma);
1179
1180__isl_give isl_map *isl_multi_pw_aff_eq_map(__isl_take isl_multi_pw_aff *mpa1,
1181 __isl_take isl_multi_pw_aff *mpa2);
1182__isl_give isl_map *isl_multi_pw_aff_lex_le_map(
1183 __isl_take isl_multi_pw_aff *mpa1, __isl_take isl_multi_pw_aff *mpa2);
1184__isl_give isl_map *isl_multi_pw_aff_lex_lt_map(
1185 __isl_take isl_multi_pw_aff *mpa1, __isl_take isl_multi_pw_aff *mpa2);
1186__isl_give isl_map *isl_multi_pw_aff_lex_ge_map(
1187 __isl_take isl_multi_pw_aff *mpa1, __isl_take isl_multi_pw_aff *mpa2);
1188__isl_give isl_map *isl_multi_pw_aff_lex_gt_map(
1189 __isl_take isl_multi_pw_aff *mpa1, __isl_take isl_multi_pw_aff *mpa2);
1190
1191__isl_export
1192__isl_give isl_set *isl_multi_pw_aff_bind(__isl_take isl_multi_pw_aff *mpa,
1193 __isl_take isl_multi_id *tuple);
1194
1195__isl_constructor
1196__isl_give isl_multi_pw_aff *isl_multi_pw_aff_read_from_str(isl_ctx *ctx,
1197 const char *str);
1198__isl_give char *isl_multi_pw_aff_to_str(__isl_keep isl_multi_pw_aff *mpa);
1199__isl_give isl_printer *isl_printer_print_multi_pw_aff(
1200 __isl_take isl_printer *p, __isl_keep isl_multi_pw_aff *mpa);
1201void isl_multi_pw_aff_dump(__isl_keep isl_multi_pw_aff *mpa);
1202
1203__isl_give isl_union_pw_aff *isl_union_pw_aff_copy(
1204 __isl_keep isl_union_pw_aff *upa);
1205__isl_null isl_union_pw_aff *isl_union_pw_aff_free(
1206 __isl_take isl_union_pw_aff *upa);
1207
1208isl_ctx *isl_union_pw_aff_get_ctx(__isl_keep isl_union_pw_aff *upa);
1209__isl_export
1210__isl_give isl_space *isl_union_pw_aff_get_space(
1211 __isl_keep isl_union_pw_aff *upa);
1212__isl_give isl_pw_aff_list *isl_union_pw_aff_get_pw_aff_list(
1213 __isl_keep isl_union_pw_aff *upa);
1214
1215isl_size isl_union_pw_aff_dim(__isl_keep isl_union_pw_aff *upa,
1216 enum isl_dim_type type);
1217__isl_give isl_union_pw_aff *isl_union_pw_aff_set_dim_name(
1218 __isl_take isl_union_pw_aff *upa, enum isl_dim_type type,
1219 unsigned pos, const char *s);
1220
1221int isl_union_pw_aff_find_dim_by_name(__isl_keep isl_union_pw_aff *upa,
1222 enum isl_dim_type type, const char *name);
1223
1224__isl_give isl_union_pw_aff *isl_union_pw_aff_drop_dims(
1225 __isl_take isl_union_pw_aff *upa,
1226 enum isl_dim_type type, unsigned first, unsigned n);
1227__isl_give isl_union_pw_aff *isl_union_pw_aff_reset_user(
1228 __isl_take isl_union_pw_aff *upa);
1229
1230__isl_give isl_union_pw_aff *isl_union_pw_aff_empty_ctx(isl_ctx *ctx);
1231__isl_give isl_union_pw_aff *isl_union_pw_aff_empty_space(
1232 __isl_take isl_space *space);
1233__isl_give isl_union_pw_aff *isl_union_pw_aff_empty(
1234 __isl_take isl_space *space);
1235__isl_constructor
1236__isl_give isl_union_pw_aff *isl_union_pw_aff_from_aff(__isl_take isl_aff *aff);
1237__isl_export
1238__isl_give isl_union_pw_aff *isl_pw_aff_to_union_pw_aff(
1239 __isl_take isl_pw_aff *pa);
1240__isl_constructor
1241__isl_give isl_union_pw_aff *isl_union_pw_aff_from_pw_aff(
1242 __isl_take isl_pw_aff *pa);
1243__isl_give isl_union_pw_aff *isl_union_pw_aff_val_on_domain(
1244 __isl_take isl_union_set *domain, __isl_take isl_val *v);
1245__isl_give isl_union_pw_aff *isl_union_pw_aff_aff_on_domain(
1246 __isl_take isl_union_set *domain, __isl_take isl_aff *aff);
1247__isl_give isl_union_pw_aff *isl_union_pw_aff_pw_aff_on_domain(
1248 __isl_take isl_union_set *domain, __isl_take isl_pw_aff *pa);
1249__isl_give isl_union_pw_aff *isl_union_pw_aff_add_pw_aff(
1250 __isl_take isl_union_pw_aff *upa, __isl_take isl_pw_aff *pa);
1251
1252__isl_constructor
1253__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_union_pw_aff(
1254 __isl_take isl_union_pw_aff *upa);
1255
1256isl_size isl_union_pw_aff_n_pw_aff(__isl_keep isl_union_pw_aff *upa);
1257
1258isl_stat isl_union_pw_aff_foreach_pw_aff(__isl_keep isl_union_pw_aff *upa,
1259 isl_stat (*fn)(__isl_take isl_pw_aff *pa, void *user), void *user);
1260isl_bool isl_union_pw_aff_every_pw_aff(__isl_keep isl_union_pw_aff *upa,
1261 isl_bool (*test)(__isl_keep isl_pw_aff *pa, void *user), void *user);
1262__isl_give isl_pw_aff *isl_union_pw_aff_extract_pw_aff(
1263 __isl_keep isl_union_pw_aff *upa, __isl_take isl_space *space);
1264
1265isl_bool isl_union_pw_aff_involves_nan(__isl_keep isl_union_pw_aff *upa);
1266isl_bool isl_union_pw_aff_plain_is_equal(__isl_keep isl_union_pw_aff *upa1,
1267 __isl_keep isl_union_pw_aff *upa2);
1268
1269__isl_export
1270__isl_give isl_union_set *isl_union_pw_aff_domain(
1271 __isl_take isl_union_pw_aff *upa);
1272
1273__isl_give isl_union_pw_aff *isl_union_pw_aff_neg(
1274 __isl_take isl_union_pw_aff *upa);
1275
1276__isl_export
1277__isl_give isl_union_pw_aff *isl_union_pw_aff_add(
1278 __isl_take isl_union_pw_aff *upa1, __isl_take isl_union_pw_aff *upa2);
1279__isl_export
1280__isl_give isl_union_pw_aff *isl_union_pw_aff_union_add(
1281 __isl_take isl_union_pw_aff *upa1, __isl_take isl_union_pw_aff *upa2);
1282__isl_export
1283__isl_give isl_union_pw_aff *isl_union_pw_aff_sub(
1284 __isl_take isl_union_pw_aff *upa1, __isl_take isl_union_pw_aff *upa2);
1285
1286__isl_export
1287__isl_give isl_union_pw_aff *isl_union_pw_aff_coalesce(
1288 __isl_take isl_union_pw_aff *upa);
1289__isl_export
1290__isl_give isl_union_pw_aff *isl_union_pw_aff_gist(
1291 __isl_take isl_union_pw_aff *upa, __isl_take isl_union_set *context);
1292__isl_give isl_union_pw_aff *isl_union_pw_aff_gist_params(
1293 __isl_take isl_union_pw_aff *upa, __isl_take isl_set *context);
1294
1295__isl_overload
1296__isl_give isl_union_pw_aff *isl_union_pw_aff_pullback_union_pw_multi_aff(
1297 __isl_take isl_union_pw_aff *upa,
1298 __isl_take isl_union_pw_multi_aff *upma);
1299
1300__isl_give isl_union_pw_aff *isl_union_pw_aff_floor(
1301 __isl_take isl_union_pw_aff *upa);
1302
1303__isl_give isl_union_pw_aff *isl_union_pw_aff_scale_val(
1304 __isl_take isl_union_pw_aff *upa, __isl_take isl_val *v);
1305__isl_give isl_union_pw_aff *isl_union_pw_aff_scale_down_val(
1306 __isl_take isl_union_pw_aff *upa, __isl_take isl_val *v);
1307__isl_give isl_union_pw_aff *isl_union_pw_aff_mod_val(
1308 __isl_take isl_union_pw_aff *upa, __isl_take isl_val *f);
1309
1310__isl_give isl_union_pw_aff *isl_union_pw_aff_align_params(
1311 __isl_take isl_union_pw_aff *upa, __isl_take isl_space *model);
1312
1313__isl_export
1314__isl_give isl_union_pw_aff *isl_union_pw_aff_intersect_params(
1315 __isl_take isl_union_pw_aff *upa, __isl_take isl_set *set);
1316__isl_overload
1317__isl_give isl_union_pw_aff *isl_union_pw_aff_intersect_domain_space(
1318 __isl_take isl_union_pw_aff *upa, __isl_take isl_space *space);
1319__isl_overload
1320__isl_give isl_union_pw_aff *isl_union_pw_aff_intersect_domain_union_set(
1321 __isl_take isl_union_pw_aff *upa, __isl_take isl_union_set *uset);
1322__isl_give isl_union_pw_aff *isl_union_pw_aff_intersect_domain(
1323 __isl_take isl_union_pw_aff *upa, __isl_take isl_union_set *uset);
1324__isl_export
1325__isl_give isl_union_pw_aff *isl_union_pw_aff_intersect_domain_wrapped_domain(
1326 __isl_take isl_union_pw_aff *upa, __isl_take isl_union_set *uset);
1327__isl_export
1328__isl_give isl_union_pw_aff *isl_union_pw_aff_intersect_domain_wrapped_range(
1329 __isl_take isl_union_pw_aff *upa, __isl_take isl_union_set *uset);
1330__isl_overload
1331__isl_give isl_union_pw_aff *isl_union_pw_aff_subtract_domain_union_set(
1332 __isl_take isl_union_pw_aff *upa, __isl_take isl_union_set *uset);
1333__isl_overload
1334__isl_give isl_union_pw_aff *isl_union_pw_aff_subtract_domain_space(
1335 __isl_take isl_union_pw_aff *upa, __isl_take isl_space *space);
1336__isl_give isl_union_pw_aff *isl_union_pw_aff_subtract_domain(
1337 __isl_take isl_union_pw_aff *upa, __isl_take isl_union_set *uset);
1338
1339__isl_give isl_union_pw_aff *isl_union_pw_aff_set_dim_name(
1340 __isl_take isl_union_pw_aff *upa,
1341 enum isl_dim_type type, unsigned pos, const char *s);
1342
1343__isl_give isl_union_set *isl_union_pw_aff_zero_union_set(
1344 __isl_take isl_union_pw_aff *upa);
1345
1346__isl_give isl_union_map *isl_union_map_from_union_pw_aff(
1347 __isl_take isl_union_pw_aff *upa);
1348
1349__isl_overload
1350__isl_give isl_union_set *isl_union_pw_aff_bind_id(
1351 __isl_take isl_union_pw_aff *upa, __isl_take isl_id *id);
1352
1353__isl_constructor
1354__isl_give isl_union_pw_aff *isl_union_pw_aff_read_from_str(isl_ctx *ctx,
1355 const char *str);
1356__isl_give char *isl_union_pw_aff_to_str(__isl_keep isl_union_pw_aff *upa);
1357__isl_give isl_printer *isl_printer_print_union_pw_aff(
1358 __isl_take isl_printer *p, __isl_keep isl_union_pw_aff *upa);
1359void isl_union_pw_aff_dump(__isl_keep isl_union_pw_aff *upa);
1360
1361ISL_DECLARE_MULTI(union_pw_aff)
1362ISL_DECLARE_MULTI_ARITH(union_pw_aff)
1363ISL_DECLARE_MULTI_ZERO(union_pw_aff)
1364ISL_DECLARE_MULTI_NAN(union_pw_aff)
1365ISL_DECLARE_MULTI_DROP_DIMS(union_pw_aff)
1366ISL_DECLARE_MULTI_DIM_ID(union_pw_aff)
1367ISL_DECLARE_MULTI_TUPLE_ID(union_pw_aff)
1368
1369__isl_export
1370__isl_give isl_multi_union_pw_aff *isl_multi_aff_to_multi_union_pw_aff(
1371 __isl_take isl_multi_aff *ma);
1372__isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_from_multi_aff(
1373 __isl_take isl_multi_aff *ma);
1374__isl_constructor
1375__isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_from_union_pw_aff(
1376 __isl_take isl_union_pw_aff *upa);
1377__isl_constructor
1378__isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_from_multi_pw_aff(
1379 __isl_take isl_multi_pw_aff *mpa);
1380__isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_multi_val_on_domain(
1381 __isl_take isl_union_set *domain, __isl_take isl_multi_val *mv);
1382__isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_multi_aff_on_domain(
1383 __isl_take isl_union_set *domain, __isl_take isl_multi_aff *ma);
1384__isl_give isl_multi_union_pw_aff *
1385isl_multi_union_pw_aff_pw_multi_aff_on_domain(__isl_take isl_union_set *domain,
1386 __isl_take isl_pw_multi_aff *pma);
1387
1388__isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_floor(
1389 __isl_take isl_multi_union_pw_aff *mupa);
1390
1391__isl_export
1392__isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_intersect_domain(
1393 __isl_take isl_multi_union_pw_aff *mupa,
1394 __isl_take isl_union_set *uset);
1395__isl_export
1396__isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_intersect_params(
1397 __isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_set *params);
1398__isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_intersect_range(
1399 __isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_set *set);
1400
1401__isl_export
1402__isl_give isl_union_set *isl_multi_union_pw_aff_domain(
1403 __isl_take isl_multi_union_pw_aff *mupa);
1404
1405__isl_export
1406__isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_coalesce(
1407 __isl_take isl_multi_union_pw_aff *mupa);
1408__isl_export
1409__isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_gist(
1410 __isl_take isl_multi_union_pw_aff *mupa,
1411 __isl_take isl_union_set *context);
1412__isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_gist_params(
1413 __isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_set *context);
1414
1415__isl_give isl_union_pw_aff *isl_multi_union_pw_aff_apply_aff(
1416 __isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_aff *aff);
1417__isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_apply_multi_aff(
1418 __isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_multi_aff *ma);
1419__isl_give isl_union_pw_aff *isl_multi_union_pw_aff_apply_pw_aff(
1420 __isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_pw_aff *pa);
1421__isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_apply_pw_multi_aff(
1422 __isl_take isl_multi_union_pw_aff *mupa,
1423 __isl_take isl_pw_multi_aff *pma);
1424
1425__isl_overload
1426__isl_give isl_multi_union_pw_aff *
1427isl_multi_union_pw_aff_pullback_union_pw_multi_aff(
1428 __isl_take isl_multi_union_pw_aff *mupa,
1429 __isl_take isl_union_pw_multi_aff *upma);
1430
1431__isl_give isl_union_pw_multi_aff *
1432isl_union_pw_multi_aff_from_multi_union_pw_aff(
1433 __isl_take isl_multi_union_pw_aff *mupa);
1434
1435__isl_export
1436__isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_union_add(
1437 __isl_take isl_multi_union_pw_aff *mupa1,
1438 __isl_take isl_multi_union_pw_aff *mupa2);
1439
1440__isl_export
1441__isl_give isl_multi_union_pw_aff *
1442isl_union_pw_multi_aff_as_multi_union_pw_aff(
1443 __isl_take isl_union_pw_multi_aff *upma);
1444__isl_give isl_multi_union_pw_aff *
1445isl_multi_union_pw_aff_from_union_pw_multi_aff(
1446 __isl_take isl_union_pw_multi_aff *upma);
1447
1448__isl_export
1449__isl_give isl_multi_union_pw_aff *isl_union_map_as_multi_union_pw_aff(
1450 __isl_take isl_union_map *umap);
1451__isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_from_union_map(
1452 __isl_take isl_union_map *umap);
1453__isl_overload
1454__isl_give isl_union_map *isl_union_map_from_multi_union_pw_aff(
1455 __isl_take isl_multi_union_pw_aff *mupa);
1456
1457__isl_give isl_union_set *isl_multi_union_pw_aff_zero_union_set(
1458 __isl_take isl_multi_union_pw_aff *mupa);
1459__isl_export
1460__isl_give isl_union_set *isl_multi_union_pw_aff_bind(
1461 __isl_take isl_multi_union_pw_aff *mupa,
1462 __isl_take isl_multi_id *tuple);
1463
1464__isl_give isl_multi_pw_aff *isl_multi_union_pw_aff_extract_multi_pw_aff(
1465 __isl_keep isl_multi_union_pw_aff *mupa, __isl_take isl_space *space);
1466
1467__isl_constructor
1468__isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_read_from_str(
1469 isl_ctx *ctx, const char *str);
1470__isl_give char *isl_multi_union_pw_aff_to_str(
1471 __isl_keep isl_multi_union_pw_aff *mupa);
1472__isl_give isl_printer *isl_printer_print_multi_union_pw_aff(
1473 __isl_take isl_printer *p, __isl_keep isl_multi_union_pw_aff *mupa);
1474void isl_multi_union_pw_aff_dump(__isl_keep isl_multi_union_pw_aff *mupa);
1475
1476ISL_DECLARE_EXPORTED_LIST_FN(aff)
1477ISL_DECLARE_EXPORTED_LIST_FN_READ(aff)
1478ISL_DECLARE_EXPORTED_LIST_FN(pw_aff)
1479ISL_DECLARE_EXPORTED_LIST_FN_READ(pw_aff)
1480ISL_DECLARE_EXPORTED_LIST_FN(pw_multi_aff)
1481ISL_DECLARE_EXPORTED_LIST_FN_READ(pw_multi_aff)
1482ISL_DECLARE_EXPORTED_LIST_FN(union_pw_aff)
1483ISL_DECLARE_EXPORTED_LIST_FN_READ(union_pw_aff)
1484ISL_DECLARE_LIST_FN(union_pw_multi_aff)
1485
1486#if defined(__cplusplus)
1487}
1488#endif
1489
1490#endif
1491

source code of polly/lib/External/isl/include/isl/aff.h