Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

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