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_POLYNOMIAL_H
2
#define ISL_POLYNOMIAL_H
3
 
4
#include <isl/ctx.h>
5
#include <isl/constraint.h>
6
#include <isl/space_type.h>
7
#include <isl/set_type.h>
8
#include <isl/point.h>
9
#include <isl/printer.h>
10
#include <isl/union_set_type.h>
11
#include <isl/aff_type.h>
12
#include <isl/polynomial_type.h>
13
#include <isl/val_type.h>
14
 
15
#if defined(__cplusplus)
16
extern "C" {
17
#endif
18
 
19
isl_ctx *isl_qpolynomial_get_ctx(__isl_keep isl_qpolynomial *qp);
20
__isl_give isl_space *isl_qpolynomial_get_domain_space(
21
        __isl_keep isl_qpolynomial *qp);
22
__isl_give isl_space *isl_qpolynomial_get_space(__isl_keep isl_qpolynomial *qp);
23
isl_size isl_qpolynomial_dim(__isl_keep isl_qpolynomial *qp,
24
        enum isl_dim_type type);
25
isl_bool isl_qpolynomial_involves_dims(__isl_keep isl_qpolynomial *qp,
26
        enum isl_dim_type type, unsigned first, unsigned n);
27
 
28
__isl_give isl_val *isl_qpolynomial_get_constant_val(
29
        __isl_keep isl_qpolynomial *qp);
30
 
31
__isl_give isl_qpolynomial *isl_qpolynomial_set_dim_name(
32
        __isl_take isl_qpolynomial *qp,
33
        enum isl_dim_type type, unsigned pos, const char *s);
34
 
35
__isl_give isl_qpolynomial *isl_qpolynomial_zero_on_domain(
36
        __isl_take isl_space *domain);
37
__isl_give isl_qpolynomial *isl_qpolynomial_one_on_domain(
38
        __isl_take isl_space *domain);
39
__isl_give isl_qpolynomial *isl_qpolynomial_infty_on_domain(
40
        __isl_take isl_space *domain);
41
__isl_give isl_qpolynomial *isl_qpolynomial_neginfty_on_domain(
42
        __isl_take isl_space *domain);
43
__isl_give isl_qpolynomial *isl_qpolynomial_nan_on_domain(
44
        __isl_take isl_space *domain);
45
__isl_give isl_qpolynomial *isl_qpolynomial_val_on_domain(
46
        __isl_take isl_space *space, __isl_take isl_val *val);
47
__isl_give isl_qpolynomial *isl_qpolynomial_var_on_domain(
48
        __isl_take isl_space *domain,
49
        enum isl_dim_type type, unsigned pos);
50
__isl_give isl_qpolynomial *isl_qpolynomial_copy(__isl_keep isl_qpolynomial *qp);
51
__isl_null isl_qpolynomial *isl_qpolynomial_free(
52
        __isl_take isl_qpolynomial *qp);
53
 
54
isl_bool isl_qpolynomial_plain_is_equal(__isl_keep isl_qpolynomial *qp1,
55
        __isl_keep isl_qpolynomial *qp2);
56
isl_bool isl_qpolynomial_is_zero(__isl_keep isl_qpolynomial *qp);
57
isl_bool isl_qpolynomial_is_nan(__isl_keep isl_qpolynomial *qp);
58
isl_bool isl_qpolynomial_is_infty(__isl_keep isl_qpolynomial *qp);
59
isl_bool isl_qpolynomial_is_neginfty(__isl_keep isl_qpolynomial *qp);
60
int isl_qpolynomial_sgn(__isl_keep isl_qpolynomial *qp);
61
 
62
__isl_give isl_qpolynomial *isl_qpolynomial_neg(__isl_take isl_qpolynomial *qp);
63
__isl_give isl_qpolynomial *isl_qpolynomial_add(__isl_take isl_qpolynomial *qp1,
64
        __isl_take isl_qpolynomial *qp2);
65
__isl_give isl_qpolynomial *isl_qpolynomial_sub(__isl_take isl_qpolynomial *qp1,
66
        __isl_take isl_qpolynomial *qp2);
67
__isl_give isl_qpolynomial *isl_qpolynomial_mul(__isl_take isl_qpolynomial *qp1,
68
        __isl_take isl_qpolynomial *qp2);
69
__isl_give isl_qpolynomial *isl_qpolynomial_pow(__isl_take isl_qpolynomial *qp,
70
        unsigned power);
71
__isl_give isl_qpolynomial *isl_qpolynomial_scale_val(
72
        __isl_take isl_qpolynomial *qp, __isl_take isl_val *v);
73
__isl_give isl_qpolynomial *isl_qpolynomial_scale_down_val(
74
        __isl_take isl_qpolynomial *qp, __isl_take isl_val *v);
75
 
76
__isl_give isl_qpolynomial *isl_qpolynomial_insert_dims(
77
        __isl_take isl_qpolynomial *qp, enum isl_dim_type type,
78
        unsigned first, unsigned n);
79
__isl_give isl_qpolynomial *isl_qpolynomial_add_dims(
80
        __isl_take isl_qpolynomial *qp, enum isl_dim_type type, unsigned n);
81
__isl_give isl_qpolynomial *isl_qpolynomial_move_dims(
82
        __isl_take isl_qpolynomial *qp,
83
        enum isl_dim_type dst_type, unsigned dst_pos,
84
        enum isl_dim_type src_type, unsigned src_pos, unsigned n);
85
__isl_give isl_qpolynomial *isl_qpolynomial_project_domain_on_params(
86
        __isl_take isl_qpolynomial *qp);
87
__isl_give isl_qpolynomial *isl_qpolynomial_drop_dims(
88
        __isl_take isl_qpolynomial *qp,
89
        enum isl_dim_type type, unsigned first, unsigned n);
90
 
91
__isl_give isl_qpolynomial *isl_qpolynomial_substitute(
92
        __isl_take isl_qpolynomial *qp,
93
        enum isl_dim_type type, unsigned first, unsigned n,
94
        __isl_keep isl_qpolynomial **subs);
95
 
96
isl_stat isl_qpolynomial_as_polynomial_on_domain(__isl_keep isl_qpolynomial *qp,
97
        __isl_keep isl_basic_set *bset,
98
        isl_stat (*fn)(__isl_take isl_basic_set *bset,
99
                  __isl_take isl_qpolynomial *poly, void *user), void *user);
100
 
101
__isl_give isl_qpolynomial *isl_qpolynomial_homogenize(
102
        __isl_take isl_qpolynomial *poly);
103
 
104
__isl_give isl_qpolynomial *isl_qpolynomial_align_params(
105
        __isl_take isl_qpolynomial *qp, __isl_take isl_space *model);
106
 
107
isl_ctx *isl_term_get_ctx(__isl_keep isl_term *term);
108
 
109
__isl_give isl_term *isl_term_copy(__isl_keep isl_term *term);
110
__isl_null isl_term *isl_term_free(__isl_take isl_term *term);
111
 
112
isl_size isl_term_dim(__isl_keep isl_term *term, enum isl_dim_type type);
113
__isl_give isl_val *isl_term_get_coefficient_val(__isl_keep isl_term *term);
114
isl_size isl_term_get_exp(__isl_keep isl_term *term,
115
        enum isl_dim_type type, unsigned pos);
116
__isl_give isl_aff *isl_term_get_div(__isl_keep isl_term *term, unsigned pos);
117
 
118
isl_stat isl_qpolynomial_foreach_term(__isl_keep isl_qpolynomial *qp,
119
        isl_stat (*fn)(__isl_take isl_term *term, void *user), void *user);
120
 
121
__isl_give isl_val *isl_qpolynomial_eval(__isl_take isl_qpolynomial *qp,
122
        __isl_take isl_point *pnt);
123
 
124
__isl_give isl_qpolynomial *isl_qpolynomial_gist_params(
125
        __isl_take isl_qpolynomial *qp, __isl_take isl_set *context);
126
__isl_give isl_qpolynomial *isl_qpolynomial_gist(
127
        __isl_take isl_qpolynomial *qp, __isl_take isl_set *context);
128
 
129
__isl_give isl_qpolynomial *isl_qpolynomial_from_constraint(
130
        __isl_take isl_constraint *c, enum isl_dim_type type, unsigned pos);
131
__isl_give isl_qpolynomial *isl_qpolynomial_from_term(__isl_take isl_term *term);
132
__isl_give isl_qpolynomial *isl_qpolynomial_from_aff(__isl_take isl_aff *aff);
133
__isl_give isl_basic_map *isl_basic_map_from_qpolynomial(
134
        __isl_take isl_qpolynomial *qp);
135
 
136
__isl_give isl_printer *isl_printer_print_qpolynomial(
137
        __isl_take isl_printer *p, __isl_keep isl_qpolynomial *qp);
138
void isl_qpolynomial_print(__isl_keep isl_qpolynomial *qp, FILE *out,
139
        unsigned output_format);
140
void isl_qpolynomial_dump(__isl_keep isl_qpolynomial *qp);
141
 
142
isl_ctx *isl_pw_qpolynomial_get_ctx(__isl_keep isl_pw_qpolynomial *pwqp);
143
 
144
isl_bool isl_pw_qpolynomial_involves_nan(__isl_keep isl_pw_qpolynomial *pwqp);
145
isl_bool isl_pw_qpolynomial_plain_is_equal(__isl_keep isl_pw_qpolynomial *pwqp1,
146
        __isl_keep isl_pw_qpolynomial *pwqp2);
147
 
148
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_zero(
149
        __isl_take isl_space *space);
150
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_alloc(__isl_take isl_set *set,
151
        __isl_take isl_qpolynomial *qp);
152
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_from_qpolynomial(
153
        __isl_take isl_qpolynomial *qp);
154
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_copy(
155
        __isl_keep isl_pw_qpolynomial *pwqp);
156
__isl_null isl_pw_qpolynomial *isl_pw_qpolynomial_free(
157
        __isl_take isl_pw_qpolynomial *pwqp);
158
 
159
isl_bool isl_pw_qpolynomial_is_zero(__isl_keep isl_pw_qpolynomial *pwqp);
160
 
161
__isl_give isl_space *isl_pw_qpolynomial_get_domain_space(
162
        __isl_keep isl_pw_qpolynomial *pwqp);
163
__isl_give isl_space *isl_pw_qpolynomial_get_space(
164
        __isl_keep isl_pw_qpolynomial *pwqp);
165
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_reset_domain_space(
166
        __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_space *space);
167
isl_size isl_pw_qpolynomial_dim(__isl_keep isl_pw_qpolynomial *pwqp,
168
        enum isl_dim_type type);
169
isl_bool isl_pw_qpolynomial_involves_param_id(
170
        __isl_keep isl_pw_qpolynomial *pwqp, __isl_keep isl_id *id);
171
isl_bool isl_pw_qpolynomial_involves_dims(__isl_keep isl_pw_qpolynomial *pwqp,
172
        enum isl_dim_type type, unsigned first, unsigned n);
173
isl_bool isl_pw_qpolynomial_has_equal_space(
174
        __isl_keep isl_pw_qpolynomial *pwqp1,
175
        __isl_keep isl_pw_qpolynomial *pwqp2);
176
 
177
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_set_dim_name(
178
        __isl_take isl_pw_qpolynomial *pwqp,
179
        enum isl_dim_type type, unsigned pos, const char *s);
180
 
181
int isl_pw_qpolynomial_find_dim_by_name(__isl_keep isl_pw_qpolynomial *pwqp,
182
        enum isl_dim_type type, const char *name);
183
 
184
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_reset_user(
185
        __isl_take isl_pw_qpolynomial *pwqp);
186
 
187
__isl_export
188
__isl_give isl_set *isl_pw_qpolynomial_domain(__isl_take isl_pw_qpolynomial *pwqp);
189
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_intersect_domain(
190
        __isl_take isl_pw_qpolynomial *pwpq, __isl_take isl_set *set);
191
__isl_give isl_pw_qpolynomial *
192
isl_pw_qpolynomial_intersect_domain_wrapped_domain(
193
        __isl_take isl_pw_qpolynomial *pwpq, __isl_take isl_set *set);
194
__isl_give isl_pw_qpolynomial *
195
isl_pw_qpolynomial_intersect_domain_wrapped_range(
196
        __isl_take isl_pw_qpolynomial *pwpq, __isl_take isl_set *set);
197
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_intersect_params(
198
        __isl_take isl_pw_qpolynomial *pwpq, __isl_take isl_set *set);
199
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_subtract_domain(
200
        __isl_take isl_pw_qpolynomial *pwpq, __isl_take isl_set *set);
201
 
202
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_project_domain_on_params(
203
        __isl_take isl_pw_qpolynomial *pwqp);
204
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_from_range(
205
        __isl_take isl_pw_qpolynomial *pwqp);
206
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_drop_dims(
207
        __isl_take isl_pw_qpolynomial *pwqp,
208
        enum isl_dim_type type, unsigned first, unsigned n);
209
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_split_dims(
210
        __isl_take isl_pw_qpolynomial *pwqp,
211
        enum isl_dim_type type, unsigned first, unsigned n);
212
 
213
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_drop_unused_params(
214
        __isl_take isl_pw_qpolynomial *pwqp);
215
 
216
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_add(
217
        __isl_take isl_pw_qpolynomial *pwqp1,
218
        __isl_take isl_pw_qpolynomial *pwqp2);
219
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_sub(
220
        __isl_take isl_pw_qpolynomial *pwqp1,
221
        __isl_take isl_pw_qpolynomial *pwqp2);
222
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_add_disjoint(
223
        __isl_take isl_pw_qpolynomial *pwqp1,
224
        __isl_take isl_pw_qpolynomial *pwqp2);
225
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_neg(
226
        __isl_take isl_pw_qpolynomial *pwqp);
227
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_mul(
228
        __isl_take isl_pw_qpolynomial *pwqp1,
229
        __isl_take isl_pw_qpolynomial *pwqp2);
230
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_scale_val(
231
        __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_val *v);
232
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_scale_down_val(
233
        __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_val *v);
234
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_pow(
235
        __isl_take isl_pw_qpolynomial *pwqp, unsigned exponent);
236
 
237
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_insert_dims(
238
        __isl_take isl_pw_qpolynomial *pwqp, enum isl_dim_type type,
239
        unsigned first, unsigned n);
240
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_add_dims(
241
        __isl_take isl_pw_qpolynomial *pwqp,
242
        enum isl_dim_type type, unsigned n);
243
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_move_dims(
244
        __isl_take isl_pw_qpolynomial *pwqp,
245
        enum isl_dim_type dst_type, unsigned dst_pos,
246
        enum isl_dim_type src_type, unsigned src_pos, unsigned n);
247
 
248
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_fix_val(
249
        __isl_take isl_pw_qpolynomial *pwqp,
250
        enum isl_dim_type type, unsigned n, __isl_take isl_val *v);
251
 
252
__isl_export
253
__isl_give isl_val *isl_pw_qpolynomial_eval(
254
        __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_point *pnt);
255
 
256
__isl_give isl_val *isl_pw_qpolynomial_max(__isl_take isl_pw_qpolynomial *pwqp);
257
__isl_give isl_val *isl_pw_qpolynomial_min(__isl_take isl_pw_qpolynomial *pwqp);
258
 
259
isl_size isl_pw_qpolynomial_n_piece(__isl_keep isl_pw_qpolynomial *pwqp);
260
isl_stat isl_pw_qpolynomial_foreach_piece(__isl_keep isl_pw_qpolynomial *pwqp,
261
        isl_stat (*fn)(__isl_take isl_set *set, __isl_take isl_qpolynomial *qp,
262
                    void *user), void *user);
263
isl_bool isl_pw_qpolynomial_every_piece(__isl_keep isl_pw_qpolynomial *pwqp,
264
        isl_bool (*test)(__isl_keep isl_set *set,
265
                __isl_keep isl_qpolynomial *qp, void *user), void *user);
266
isl_stat isl_pw_qpolynomial_foreach_lifted_piece(
267
        __isl_keep isl_pw_qpolynomial *pwqp,
268
        isl_stat (*fn)(__isl_take isl_set *set, __isl_take isl_qpolynomial *qp,
269
                    void *user), void *user);
270
isl_bool isl_pw_qpolynomial_isa_qpolynomial(
271
        __isl_keep isl_pw_qpolynomial *pwqp);
272
__isl_give isl_qpolynomial *isl_pw_qpolynomial_as_qpolynomial(
273
        __isl_take isl_pw_qpolynomial *pwqp);
274
 
275
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_from_pw_aff(
276
        __isl_take isl_pw_aff *pwaff);
277
 
278
__isl_constructor
279
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_read_from_str(isl_ctx *ctx,
280
                const char *str);
281
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_read_from_file(isl_ctx *ctx,
282
                FILE *input);
283
__isl_give char *isl_pw_qpolynomial_to_str(__isl_keep isl_pw_qpolynomial *pwqp);
284
__isl_give isl_printer *isl_printer_print_pw_qpolynomial(
285
        __isl_take isl_printer *p, __isl_keep isl_pw_qpolynomial *pwqp);
286
void isl_pw_qpolynomial_print(__isl_keep isl_pw_qpolynomial *pwqp, FILE *out,
287
        unsigned output_format);
288
void isl_pw_qpolynomial_dump(__isl_keep isl_pw_qpolynomial *pwqp);
289
 
290
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_coalesce(
291
        __isl_take isl_pw_qpolynomial *pwqp);
292
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_gist(
293
        __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_set *context);
294
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_gist_params(
295
        __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_set *context);
296
 
297
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_split_periods(
298
        __isl_take isl_pw_qpolynomial *pwqp, int max_periods);
299
 
300
__isl_give isl_pw_qpolynomial *isl_basic_set_multiplicative_call(
301
        __isl_take isl_basic_set *bset,
302
        __isl_give isl_pw_qpolynomial *(*fn)(__isl_take isl_basic_set *bset));
303
 
304
isl_ctx *isl_qpolynomial_fold_get_ctx(__isl_keep isl_qpolynomial_fold *fold);
305
enum isl_fold isl_qpolynomial_fold_get_type(__isl_keep isl_qpolynomial_fold *fold);
306
 
307
__isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_empty(enum isl_fold type,
308
        __isl_take isl_space *space);
309
__isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_alloc(
310
        enum isl_fold type, __isl_take isl_qpolynomial *qp);
311
__isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_copy(
312
        __isl_keep isl_qpolynomial_fold *fold);
313
__isl_null isl_qpolynomial_fold *isl_qpolynomial_fold_free(
314
        __isl_take isl_qpolynomial_fold *fold);
315
 
316
isl_bool isl_qpolynomial_fold_is_empty(__isl_keep isl_qpolynomial_fold *fold);
317
isl_bool isl_qpolynomial_fold_is_nan(__isl_keep isl_qpolynomial_fold *fold);
318
isl_bool isl_qpolynomial_fold_plain_is_equal(
319
        __isl_keep isl_qpolynomial_fold *fold1,
320
        __isl_keep isl_qpolynomial_fold *fold2);
321
 
322
__isl_give isl_space *isl_qpolynomial_fold_get_domain_space(
323
        __isl_keep isl_qpolynomial_fold *fold);
324
__isl_give isl_space *isl_qpolynomial_fold_get_space(
325
        __isl_keep isl_qpolynomial_fold *fold);
326
 
327
__isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_fold(
328
        __isl_take isl_qpolynomial_fold *fold1,
329
        __isl_take isl_qpolynomial_fold *fold2);
330
 
331
__isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_scale_val(
332
        __isl_take isl_qpolynomial_fold *fold, __isl_take isl_val *v);
333
__isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_scale_down_val(
334
        __isl_take isl_qpolynomial_fold *fold, __isl_take isl_val *v);
335
 
336
__isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_move_dims(
337
        __isl_take isl_qpolynomial_fold *fold,
338
        enum isl_dim_type dst_type, unsigned dst_pos,
339
        enum isl_dim_type src_type, unsigned src_pos, unsigned n);
340
 
341
__isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_substitute(
342
        __isl_take isl_qpolynomial_fold *fold,
343
        enum isl_dim_type type, unsigned first, unsigned n,
344
        __isl_keep isl_qpolynomial **subs);
345
 
346
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_fix_val(
347
        __isl_take isl_pw_qpolynomial_fold *pwf,
348
        enum isl_dim_type type, unsigned n, __isl_take isl_val *v);
349
 
350
__isl_give isl_val *isl_qpolynomial_fold_eval(
351
        __isl_take isl_qpolynomial_fold *fold, __isl_take isl_point *pnt);
352
 
353
__isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_gist_params(
354
        __isl_take isl_qpolynomial_fold *fold, __isl_take isl_set *context);
355
__isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_gist(
356
        __isl_take isl_qpolynomial_fold *fold, __isl_take isl_set *context);
357
 
358
isl_stat isl_qpolynomial_fold_foreach_qpolynomial(
359
        __isl_keep isl_qpolynomial_fold *fold,
360
        isl_stat (*fn)(__isl_take isl_qpolynomial *qp, void *user), void *user);
361
 
362
__isl_give isl_printer *isl_printer_print_qpolynomial_fold(
363
        __isl_take isl_printer *p, __isl_keep isl_qpolynomial_fold *fold);
364
void isl_qpolynomial_fold_print(__isl_keep isl_qpolynomial_fold *fold, FILE *out,
365
        unsigned output_format);
366
void isl_qpolynomial_fold_dump(__isl_keep isl_qpolynomial_fold *fold);
367
 
368
isl_ctx *isl_pw_qpolynomial_fold_get_ctx(__isl_keep isl_pw_qpolynomial_fold *pwf);
369
enum isl_fold isl_pw_qpolynomial_fold_get_type(
370
        __isl_keep isl_pw_qpolynomial_fold *pwf);
371
 
372
isl_bool isl_pw_qpolynomial_fold_involves_nan(
373
        __isl_keep isl_pw_qpolynomial_fold *pwf);
374
isl_bool isl_pw_qpolynomial_fold_plain_is_equal(
375
        __isl_keep isl_pw_qpolynomial_fold *pwf1,
376
        __isl_keep isl_pw_qpolynomial_fold *pwf2);
377
 
378
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_from_pw_qpolynomial(
379
        enum isl_fold type, __isl_take isl_pw_qpolynomial *pwqp);
380
 
381
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_alloc(
382
        enum isl_fold type,
383
        __isl_take isl_set *set, __isl_take isl_qpolynomial_fold *fold);
384
__isl_give isl_pw_qpolynomial_fold *
385
isl_pw_qpolynomial_fold_from_qpolynomial_fold(
386
        __isl_take isl_qpolynomial_fold *fold);
387
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_copy(
388
        __isl_keep isl_pw_qpolynomial_fold *pwf);
389
__isl_null isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_free(
390
        __isl_take isl_pw_qpolynomial_fold *pwf);
391
 
392
isl_bool isl_pw_qpolynomial_fold_is_zero(
393
        __isl_keep isl_pw_qpolynomial_fold *pwf);
394
 
395
__isl_give isl_space *isl_pw_qpolynomial_fold_get_domain_space(
396
        __isl_keep isl_pw_qpolynomial_fold *pwf);
397
__isl_give isl_space *isl_pw_qpolynomial_fold_get_space(
398
        __isl_keep isl_pw_qpolynomial_fold *pwf);
399
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_reset_space(
400
        __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_space *space);
401
isl_size isl_pw_qpolynomial_fold_dim(__isl_keep isl_pw_qpolynomial_fold *pwf,
402
        enum isl_dim_type type);
403
isl_bool isl_pw_qpolynomial_fold_involves_param_id(
404
        __isl_keep isl_pw_qpolynomial_fold *pwf, __isl_keep isl_id *id);
405
isl_bool isl_pw_qpolynomial_fold_has_equal_space(
406
        __isl_keep isl_pw_qpolynomial_fold *pwf1,
407
        __isl_keep isl_pw_qpolynomial_fold *pwf2);
408
 
409
size_t isl_pw_qpolynomial_fold_size(__isl_keep isl_pw_qpolynomial_fold *pwf);
410
 
411
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_zero(
412
        __isl_take isl_space *space, enum isl_fold type);
413
 
414
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_set_dim_name(
415
        __isl_take isl_pw_qpolynomial_fold *pwf,
416
        enum isl_dim_type type, unsigned pos, const char *s);
417
 
418
int isl_pw_qpolynomial_fold_find_dim_by_name(
419
        __isl_keep isl_pw_qpolynomial_fold *pwf,
420
        enum isl_dim_type type, const char *name);
421
 
422
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_reset_user(
423
        __isl_take isl_pw_qpolynomial_fold *pwf);
424
 
425
__isl_give isl_set *isl_pw_qpolynomial_fold_domain(
426
        __isl_take isl_pw_qpolynomial_fold *pwf);
427
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_intersect_domain(
428
        __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *set);
429
__isl_give isl_pw_qpolynomial_fold *
430
isl_pw_qpolynomial_fold_intersect_domain_wrapped_domain(
431
        __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *set);
432
__isl_give isl_pw_qpolynomial_fold *
433
isl_pw_qpolynomial_fold_intersect_domain_wrapped_range(
434
        __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *set);
435
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_intersect_params(
436
        __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *set);
437
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_subtract_domain(
438
        __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *set);
439
 
440
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_add(
441
        __isl_take isl_pw_qpolynomial_fold *pwf1,
442
        __isl_take isl_pw_qpolynomial_fold *pwf2);
443
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_fold(
444
        __isl_take isl_pw_qpolynomial_fold *pwf1,
445
        __isl_take isl_pw_qpolynomial_fold *pwf2);
446
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_add_disjoint(
447
        __isl_take isl_pw_qpolynomial_fold *pwf1,
448
        __isl_take isl_pw_qpolynomial_fold *pwf2);
449
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_scale_val(
450
        __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_val *v);
451
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_scale_down_val(
452
        __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_val *v);
453
 
454
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_project_domain_on_params(
455
        __isl_take isl_pw_qpolynomial_fold *pwf);
456
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_from_range(
457
        __isl_take isl_pw_qpolynomial_fold *pwf);
458
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_drop_dims(
459
        __isl_take isl_pw_qpolynomial_fold *pwf,
460
        enum isl_dim_type type, unsigned first, unsigned n);
461
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_move_dims(
462
        __isl_take isl_pw_qpolynomial_fold *pwf,
463
        enum isl_dim_type dst_type, unsigned dst_pos,
464
        enum isl_dim_type src_type, unsigned src_pos, unsigned n);
465
 
466
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_drop_unused_params(
467
        __isl_take isl_pw_qpolynomial_fold *pwf);
468
 
469
__isl_give isl_val *isl_pw_qpolynomial_fold_eval(
470
        __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_point *pnt);
471
 
472
isl_size isl_pw_qpolynomial_fold_n_piece(
473
        __isl_keep isl_pw_qpolynomial_fold *pwf);
474
isl_stat isl_pw_qpolynomial_fold_foreach_piece(
475
        __isl_keep isl_pw_qpolynomial_fold *pwf,
476
        isl_stat (*fn)(__isl_take isl_set *set,
477
                __isl_take isl_qpolynomial_fold *fold, void *user), void *user);
478
isl_bool isl_pw_qpolynomial_fold_every_piece(
479
        __isl_keep isl_pw_qpolynomial_fold *pwf,
480
        isl_bool (*test)(__isl_keep isl_set *set,
481
                __isl_keep isl_qpolynomial_fold *fold, void *user), void *user);
482
isl_stat isl_pw_qpolynomial_fold_foreach_lifted_piece(
483
        __isl_keep isl_pw_qpolynomial_fold *pwf,
484
        isl_stat (*fn)(__isl_take isl_set *set,
485
                __isl_take isl_qpolynomial_fold *fold, void *user), void *user);
486
isl_bool isl_pw_qpolynomial_fold_isa_qpolynomial_fold(
487
        __isl_keep isl_pw_qpolynomial_fold *pwf);
488
__isl_give isl_qpolynomial_fold *isl_pw_qpolynomial_fold_as_qpolynomial_fold(
489
        __isl_take isl_pw_qpolynomial_fold *pwf);
490
 
491
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_read_from_str(
492
        isl_ctx *ctx, const char *str);
493
__isl_give isl_printer *isl_printer_print_pw_qpolynomial_fold(
494
        __isl_take isl_printer *p, __isl_keep isl_pw_qpolynomial_fold *pwf);
495
void isl_pw_qpolynomial_fold_print(__isl_keep isl_pw_qpolynomial_fold *pwf,
496
        FILE *out, unsigned output_format);
497
void isl_pw_qpolynomial_fold_dump(__isl_keep isl_pw_qpolynomial_fold *pwf);
498
 
499
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_coalesce(
500
        __isl_take isl_pw_qpolynomial_fold *pwf);
501
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_gist(
502
        __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *context);
503
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_gist_params(
504
        __isl_take isl_pw_qpolynomial_fold *pwf, __isl_take isl_set *context);
505
 
506
__isl_give isl_val *isl_pw_qpolynomial_fold_max(
507
        __isl_take isl_pw_qpolynomial_fold *pwf);
508
__isl_give isl_val *isl_pw_qpolynomial_fold_min(
509
        __isl_take isl_pw_qpolynomial_fold *pwf);
510
 
511
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_bound(
512
        __isl_take isl_pw_qpolynomial *pwqp, enum isl_fold type,
513
        isl_bool *tight);
514
__isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_bound(
515
        __isl_take isl_pw_qpolynomial_fold *pwf, isl_bool *tight);
516
__isl_give isl_pw_qpolynomial_fold *isl_set_apply_pw_qpolynomial_fold(
517
        __isl_take isl_set *set, __isl_take isl_pw_qpolynomial_fold *pwf,
518
        isl_bool *tight);
519
__isl_give isl_pw_qpolynomial_fold *isl_map_apply_pw_qpolynomial_fold(
520
        __isl_take isl_map *map, __isl_take isl_pw_qpolynomial_fold *pwf,
521
        isl_bool *tight);
522
 
523
__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_to_polynomial(
524
        __isl_take isl_pw_qpolynomial *pwqp, int sign);
525
 
526
isl_ctx *isl_union_pw_qpolynomial_get_ctx(
527
        __isl_keep isl_union_pw_qpolynomial *upwqp);
528
 
529
isl_size isl_union_pw_qpolynomial_dim(
530
        __isl_keep isl_union_pw_qpolynomial *upwqp, enum isl_dim_type type);
531
 
532
isl_bool isl_union_pw_qpolynomial_involves_nan(
533
        __isl_keep isl_union_pw_qpolynomial *upwqp);
534
isl_bool isl_union_pw_qpolynomial_plain_is_equal(
535
        __isl_keep isl_union_pw_qpolynomial *upwqp1,
536
        __isl_keep isl_union_pw_qpolynomial *upwqp2);
537
 
538
__isl_give isl_union_pw_qpolynomial *isl_pw_qpolynomial_to_union_pw_qpolynomial(
539
        __isl_take isl_pw_qpolynomial *pwqp);
540
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_from_pw_qpolynomial(__isl_take isl_pw_qpolynomial *pwqp);
541
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_zero_ctx(
542
        isl_ctx *ctx);
543
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_zero_space(
544
        __isl_take isl_space *space);
545
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_zero(
546
        __isl_take isl_space *space);
547
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_add_pw_qpolynomial(
548
        __isl_take isl_union_pw_qpolynomial *upwqp,
549
        __isl_take isl_pw_qpolynomial *pwqp);
550
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_copy(
551
        __isl_keep isl_union_pw_qpolynomial *upwqp);
552
__isl_null isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_free(
553
        __isl_take isl_union_pw_qpolynomial *upwqp);
554
 
555
__isl_constructor
556
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_read_from_str(
557
        isl_ctx *ctx, const char *str);
558
__isl_give char *isl_union_pw_qpolynomial_to_str(
559
        __isl_keep isl_union_pw_qpolynomial *upwqp);
560
 
561
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_neg(
562
        __isl_take isl_union_pw_qpolynomial *upwqp);
563
 
564
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_add(
565
        __isl_take isl_union_pw_qpolynomial *upwqp1,
566
        __isl_take isl_union_pw_qpolynomial *upwqp2);
567
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_sub(
568
        __isl_take isl_union_pw_qpolynomial *upwqp1,
569
        __isl_take isl_union_pw_qpolynomial *upwqp2);
570
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_mul(
571
        __isl_take isl_union_pw_qpolynomial *upwqp1,
572
        __isl_take isl_union_pw_qpolynomial *upwqp2);
573
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_scale_val(
574
        __isl_take isl_union_pw_qpolynomial *upwqp, __isl_take isl_val *v);
575
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_scale_down_val(
576
        __isl_take isl_union_pw_qpolynomial *upwqp, __isl_take isl_val *v);
577
 
578
__isl_export
579
__isl_give isl_union_set *isl_union_pw_qpolynomial_domain(
580
        __isl_take isl_union_pw_qpolynomial *upwqp);
581
__isl_give isl_union_pw_qpolynomial *
582
isl_union_pw_qpolynomial_intersect_domain_space(
583
        __isl_take isl_union_pw_qpolynomial *upwpq,
584
        __isl_take isl_space *space);
585
__isl_give isl_union_pw_qpolynomial *
586
isl_union_pw_qpolynomial_intersect_domain_union_set(
587
        __isl_take isl_union_pw_qpolynomial *upwpq,
588
        __isl_take isl_union_set *uset);
589
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_intersect_domain(
590
        __isl_take isl_union_pw_qpolynomial *upwpq,
591
        __isl_take isl_union_set *uset);
592
__isl_give isl_union_pw_qpolynomial *
593
isl_union_pw_qpolynomial_intersect_domain_wrapped_domain(
594
        __isl_take isl_union_pw_qpolynomial *upwpq,
595
        __isl_take isl_union_set *uset);
596
__isl_give isl_union_pw_qpolynomial *
597
isl_union_pw_qpolynomial_intersect_domain_wrapped_range(
598
        __isl_take isl_union_pw_qpolynomial *upwpq,
599
        __isl_take isl_union_set *uset);
600
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_intersect_params(
601
        __isl_take isl_union_pw_qpolynomial *upwpq,
602
        __isl_take isl_set *set);
603
__isl_give isl_union_pw_qpolynomial *
604
isl_union_pw_qpolynomial_subtract_domain_union_set(
605
        __isl_take isl_union_pw_qpolynomial *upwpq,
606
        __isl_take isl_union_set *uset);
607
__isl_give isl_union_pw_qpolynomial *
608
isl_union_pw_qpolynomial_subtract_domain_space(
609
        __isl_take isl_union_pw_qpolynomial *upwpq,
610
        __isl_take isl_space *space);
611
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_subtract_domain(
612
        __isl_take isl_union_pw_qpolynomial *upwpq,
613
        __isl_take isl_union_set *uset);
614
 
615
__isl_give isl_space *isl_union_pw_qpolynomial_get_space(
616
        __isl_keep isl_union_pw_qpolynomial *upwqp);
617
__isl_give isl_pw_qpolynomial_list *
618
isl_union_pw_qpolynomial_get_pw_qpolynomial_list(
619
        __isl_keep isl_union_pw_qpolynomial *upwqp);
620
 
621
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_set_dim_name(
622
        __isl_take isl_union_pw_qpolynomial *upwqp,
623
        enum isl_dim_type type, unsigned pos, const char *s);
624
 
625
int isl_union_pw_qpolynomial_find_dim_by_name(
626
        __isl_keep isl_union_pw_qpolynomial *upwqp,
627
        enum isl_dim_type type, const char *name);
628
 
629
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_drop_dims(
630
        __isl_take isl_union_pw_qpolynomial *upwqp,
631
        enum isl_dim_type type, unsigned first, unsigned n);
632
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_reset_user(
633
        __isl_take isl_union_pw_qpolynomial *upwqp);
634
 
635
__isl_export
636
__isl_give isl_val *isl_union_pw_qpolynomial_eval(
637
        __isl_take isl_union_pw_qpolynomial *upwqp, __isl_take isl_point *pnt);
638
 
639
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_coalesce(
640
        __isl_take isl_union_pw_qpolynomial *upwqp);
641
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_gist(
642
        __isl_take isl_union_pw_qpolynomial *upwqp,
643
        __isl_take isl_union_set *context);
644
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_gist_params(
645
        __isl_take isl_union_pw_qpolynomial *upwqp,
646
        __isl_take isl_set *context);
647
 
648
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_align_params(
649
        __isl_take isl_union_pw_qpolynomial *upwqp,
650
        __isl_take isl_space *model);
651
 
652
isl_size isl_union_pw_qpolynomial_n_pw_qpolynomial(
653
        __isl_keep isl_union_pw_qpolynomial *upwqp);
654
isl_stat isl_union_pw_qpolynomial_foreach_pw_qpolynomial(
655
        __isl_keep isl_union_pw_qpolynomial *upwqp,
656
        isl_stat (*fn)(__isl_take isl_pw_qpolynomial *pwqp, void *user),
657
        void *user);
658
isl_bool isl_union_pw_qpolynomial_every_pw_qpolynomial(
659
        __isl_keep isl_union_pw_qpolynomial *upwqp,
660
        isl_bool (*test)(__isl_keep isl_pw_qpolynomial *pwqp, void *user),
661
        void *user);
662
__isl_give isl_pw_qpolynomial *isl_union_pw_qpolynomial_extract_pw_qpolynomial(
663
        __isl_keep isl_union_pw_qpolynomial *upwqp,
664
        __isl_take isl_space *space);
665
 
666
__isl_give isl_printer *isl_printer_print_union_pw_qpolynomial(
667
        __isl_take isl_printer *p, __isl_keep isl_union_pw_qpolynomial *upwqp);
668
 
669
isl_ctx *isl_union_pw_qpolynomial_fold_get_ctx(
670
        __isl_keep isl_union_pw_qpolynomial_fold *upwf);
671
 
672
isl_size isl_union_pw_qpolynomial_fold_dim(
673
        __isl_keep isl_union_pw_qpolynomial_fold *upwf, enum isl_dim_type type);
674
 
675
isl_bool isl_union_pw_qpolynomial_fold_involves_nan(
676
        __isl_keep isl_union_pw_qpolynomial_fold *upwf);
677
isl_bool isl_union_pw_qpolynomial_fold_plain_is_equal(
678
        __isl_keep isl_union_pw_qpolynomial_fold *upwf1,
679
        __isl_keep isl_union_pw_qpolynomial_fold *upwf2);
680
 
681
__isl_give isl_union_pw_qpolynomial_fold *
682
isl_pw_qpolynomial_fold_to_union_pw_qpolynomial_fold(
683
        __isl_take isl_pw_qpolynomial_fold *pwf);
684
__isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_from_pw_qpolynomial_fold(__isl_take isl_pw_qpolynomial_fold *pwf);
685
__isl_give isl_union_pw_qpolynomial_fold *
686
isl_union_pw_qpolynomial_fold_zero_ctx(isl_ctx *ctx, enum isl_fold type);
687
__isl_give isl_union_pw_qpolynomial_fold *
688
isl_union_pw_qpolynomial_fold_zero_space(__isl_take isl_space *space,
689
        enum isl_fold type);
690
__isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_zero(
691
        __isl_take isl_space *space, enum isl_fold type);
692
__isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_fold_pw_qpolynomial_fold(
693
        __isl_take isl_union_pw_qpolynomial_fold *upwqp,
694
        __isl_take isl_pw_qpolynomial_fold *pwqp);
695
__isl_null isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_free(
696
        __isl_take isl_union_pw_qpolynomial_fold *upwf);
697
__isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_copy(
698
        __isl_keep isl_union_pw_qpolynomial_fold *upwf);
699
 
700
__isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_fold(
701
        __isl_take isl_union_pw_qpolynomial_fold *upwf1,
702
        __isl_take isl_union_pw_qpolynomial_fold *upwf2);
703
__isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_add_union_pw_qpolynomial(
704
        __isl_take isl_union_pw_qpolynomial_fold *upwf,
705
        __isl_take isl_union_pw_qpolynomial *upwqp);
706
__isl_give isl_union_pw_qpolynomial_fold *
707
isl_union_pw_qpolynomial_fold_scale_val(
708
        __isl_take isl_union_pw_qpolynomial_fold *upwf, __isl_take isl_val *v);
709
__isl_give isl_union_pw_qpolynomial_fold *
710
isl_union_pw_qpolynomial_fold_scale_down_val(
711
        __isl_take isl_union_pw_qpolynomial_fold *upwf, __isl_take isl_val *v);
712
 
713
__isl_give isl_union_set *isl_union_pw_qpolynomial_fold_domain(
714
        __isl_take isl_union_pw_qpolynomial_fold *upwf);
715
__isl_give isl_union_pw_qpolynomial_fold *
716
isl_union_pw_qpolynomial_fold_intersect_domain_space(
717
        __isl_take isl_union_pw_qpolynomial_fold *upwf,
718
        __isl_take isl_space *space);
719
__isl_give isl_union_pw_qpolynomial_fold *
720
isl_union_pw_qpolynomial_fold_intersect_domain_union_set(
721
        __isl_take isl_union_pw_qpolynomial_fold *upwf,
722
        __isl_take isl_union_set *uset);
723
__isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_intersect_domain(
724
        __isl_take isl_union_pw_qpolynomial_fold *upwf,
725
        __isl_take isl_union_set *uset);
726
__isl_give isl_union_pw_qpolynomial_fold *
727
isl_union_pw_qpolynomial_fold_intersect_domain_wrapped_domain(
728
        __isl_take isl_union_pw_qpolynomial_fold *upwf,
729
        __isl_take isl_union_set *uset);
730
__isl_give isl_union_pw_qpolynomial_fold *
731
isl_union_pw_qpolynomial_fold_intersect_domain_wrapped_range(
732
        __isl_take isl_union_pw_qpolynomial_fold *upwf,
733
        __isl_take isl_union_set *uset);
734
__isl_give isl_union_pw_qpolynomial_fold *
735
isl_union_pw_qpolynomial_fold_intersect_params(
736
        __isl_take isl_union_pw_qpolynomial_fold *upwf,
737
        __isl_take isl_set *set);
738
__isl_give isl_union_pw_qpolynomial_fold *
739
isl_union_pw_qpolynomial_fold_subtract_domain_union_set(
740
        __isl_take isl_union_pw_qpolynomial_fold *upwf,
741
        __isl_take isl_union_set *uset);
742
__isl_give isl_union_pw_qpolynomial_fold *
743
isl_union_pw_qpolynomial_fold_subtract_domain_space(
744
        __isl_take isl_union_pw_qpolynomial_fold *upwf,
745
        __isl_take isl_space *space);
746
__isl_give isl_union_pw_qpolynomial_fold *
747
isl_union_pw_qpolynomial_fold_subtract_domain(
748
        __isl_take isl_union_pw_qpolynomial_fold *upwf,
749
        __isl_take isl_union_set *uset);
750
 
751
enum isl_fold isl_union_pw_qpolynomial_fold_get_type(
752
        __isl_keep isl_union_pw_qpolynomial_fold *upwf);
753
__isl_give isl_space *isl_union_pw_qpolynomial_fold_get_space(
754
        __isl_keep isl_union_pw_qpolynomial_fold *upwf);
755
__isl_give isl_pw_qpolynomial_fold_list *
756
isl_union_pw_qpolynomial_fold_get_pw_qpolynomial_fold_list(
757
        __isl_keep isl_union_pw_qpolynomial_fold *upwf);
758
 
759
__isl_give isl_union_pw_qpolynomial_fold *
760
isl_union_pw_qpolynomial_fold_set_dim_name(
761
        __isl_take isl_union_pw_qpolynomial_fold *upwf,
762
        enum isl_dim_type type, unsigned pos, const char *s);
763
 
764
int isl_union_pw_qpolynomial_fold_find_dim_by_name(
765
        __isl_keep isl_union_pw_qpolynomial_fold *upwf,
766
        enum isl_dim_type type, const char *name);
767
 
768
__isl_give isl_union_pw_qpolynomial_fold *
769
        isl_union_pw_qpolynomial_fold_drop_dims(
770
        __isl_take isl_union_pw_qpolynomial_fold *upwf,
771
        enum isl_dim_type type, unsigned first, unsigned n);
772
__isl_give isl_union_pw_qpolynomial_fold *
773
isl_union_pw_qpolynomial_fold_reset_user(
774
        __isl_take isl_union_pw_qpolynomial_fold *upwf);
775
 
776
__isl_give isl_val *isl_union_pw_qpolynomial_fold_eval(
777
        __isl_take isl_union_pw_qpolynomial_fold *upwf,
778
        __isl_take isl_point *pnt);
779
 
780
__isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_coalesce(
781
        __isl_take isl_union_pw_qpolynomial_fold *upwf);
782
__isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_gist(
783
        __isl_take isl_union_pw_qpolynomial_fold *upwf,
784
        __isl_take isl_union_set *context);
785
__isl_give isl_union_pw_qpolynomial_fold *
786
isl_union_pw_qpolynomial_fold_gist_params(
787
        __isl_take isl_union_pw_qpolynomial_fold *upwf,
788
        __isl_take isl_set *context);
789
 
790
__isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_align_params(
791
        __isl_take isl_union_pw_qpolynomial_fold *upwf,
792
        __isl_take isl_space *model);
793
 
794
isl_size isl_union_pw_qpolynomial_fold_n_pw_qpolynomial_fold(
795
        __isl_keep isl_union_pw_qpolynomial_fold *upwf);
796
isl_stat isl_union_pw_qpolynomial_fold_foreach_pw_qpolynomial_fold(
797
        __isl_keep isl_union_pw_qpolynomial_fold *upwf,
798
        isl_stat (*fn)(__isl_take isl_pw_qpolynomial_fold *pwf,
799
                    void *user), void *user);
800
isl_bool isl_union_pw_qpolynomial_fold_every_pw_qpolynomial_fold(
801
        __isl_keep isl_union_pw_qpolynomial_fold *upwf,
802
        isl_bool (*test)(__isl_keep isl_pw_qpolynomial_fold *pwf,
803
                void *user), void *user);
804
__isl_give isl_pw_qpolynomial_fold *isl_union_pw_qpolynomial_fold_extract_pw_qpolynomial_fold(
805
        __isl_keep isl_union_pw_qpolynomial_fold *upwf,
806
        __isl_take isl_space *space);
807
 
808
__isl_give isl_printer *isl_printer_print_union_pw_qpolynomial_fold(
809
        __isl_take isl_printer *p,
810
        __isl_keep isl_union_pw_qpolynomial_fold *upwf);
811
 
812
__isl_give isl_union_pw_qpolynomial_fold *isl_union_pw_qpolynomial_bound(
813
        __isl_take isl_union_pw_qpolynomial *upwqp,
814
        enum isl_fold type, isl_bool *tight);
815
__isl_give isl_union_pw_qpolynomial_fold *isl_union_set_apply_union_pw_qpolynomial_fold(
816
        __isl_take isl_union_set *uset,
817
        __isl_take isl_union_pw_qpolynomial_fold *upwf, isl_bool *tight);
818
__isl_give isl_union_pw_qpolynomial_fold *isl_union_map_apply_union_pw_qpolynomial_fold(
819
        __isl_take isl_union_map *umap,
820
        __isl_take isl_union_pw_qpolynomial_fold *upwf, isl_bool *tight);
821
 
822
__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_to_polynomial(
823
        __isl_take isl_union_pw_qpolynomial *upwqp, int sign);
824
 
825
ISL_DECLARE_LIST_FN(qpolynomial)
826
ISL_DECLARE_LIST_FN(pw_qpolynomial)
827
ISL_DECLARE_LIST_FN(pw_qpolynomial_fold)
828
 
829
#if defined(__cplusplus)
830
}
831
#endif
832
 
833
#endif