~ubuntu-branches/ubuntu/trusty/cloog/trusty

« back to all changes in this revision

Viewing changes to isl/include/isl/aff.h

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2011-12-15 18:39:17 UTC
  • mfrom: (1.1.1)
  • Revision ID: package-import@ubuntu.com-20111215183917-uqggmujou8wna9js
Tags: 0.17.0-1
New upstream version.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#ifndef ISL_AFF_H
2
2
#define ISL_AFF_H
3
3
 
4
 
#include <isl/div.h>
5
4
#include <isl/local_space.h>
6
5
#include <isl/printer.h>
7
6
#include <isl/set_type.h>
8
7
#include <isl/aff_type.h>
 
8
#include <isl/list.h>
 
9
#include <isl/multi.h>
9
10
 
10
11
#if defined(__cplusplus)
11
12
extern "C" {
12
13
#endif
13
14
 
14
 
__isl_give isl_aff *isl_aff_zero(__isl_take isl_local_space *ls);
 
15
__isl_give isl_aff *isl_aff_zero_on_domain(__isl_take isl_local_space *ls);
15
16
 
16
17
__isl_give isl_aff *isl_aff_copy(__isl_keep isl_aff *aff);
17
18
void *isl_aff_free(__isl_take isl_aff *aff);
22
23
int isl_aff_involves_dims(__isl_keep isl_aff *aff,
23
24
        enum isl_dim_type type, unsigned first, unsigned n);
24
25
 
25
 
__isl_give isl_dim *isl_aff_get_dim(__isl_keep isl_aff *aff);
 
26
__isl_give isl_space *isl_aff_get_domain_space(__isl_keep isl_aff *aff);
 
27
__isl_give isl_space *isl_aff_get_space(__isl_keep isl_aff *aff);
 
28
__isl_give isl_local_space *isl_aff_get_domain_local_space(
 
29
        __isl_keep isl_aff *aff);
26
30
__isl_give isl_local_space *isl_aff_get_local_space(__isl_keep isl_aff *aff);
27
31
 
28
32
const char *isl_aff_get_dim_name(__isl_keep isl_aff *aff,
45
49
__isl_give isl_aff *isl_aff_add_coefficient_si(__isl_take isl_aff *aff,
46
50
        enum isl_dim_type type, int pos, int v);
47
51
 
 
52
int isl_aff_is_cst(__isl_keep isl_aff *aff);
 
53
 
48
54
__isl_give isl_aff *isl_aff_set_dim_name(__isl_take isl_aff *aff,
49
55
        enum isl_dim_type type, unsigned pos, const char *s);
 
56
__isl_give isl_aff *isl_aff_set_dim_id(__isl_take isl_aff *aff,
 
57
        enum isl_dim_type type, unsigned pos, __isl_take isl_id *id);
50
58
 
51
59
int isl_aff_plain_is_equal(__isl_keep isl_aff *aff1, __isl_keep isl_aff *aff2);
52
60
int isl_aff_plain_is_zero(__isl_keep isl_aff *aff);
53
61
 
54
 
__isl_give isl_div *isl_aff_get_div(__isl_keep isl_aff *aff, int pos);
 
62
__isl_give isl_aff *isl_aff_get_div(__isl_keep isl_aff *aff, int pos);
55
63
 
56
64
__isl_give isl_aff *isl_aff_neg(__isl_take isl_aff *aff);
57
65
__isl_give isl_aff *isl_aff_ceil(__isl_take isl_aff *aff);
58
66
__isl_give isl_aff *isl_aff_floor(__isl_take isl_aff *aff);
 
67
__isl_give isl_aff *isl_aff_mod(__isl_take isl_aff *aff, isl_int mod);
59
68
 
 
69
__isl_give isl_aff *isl_aff_mul(__isl_take isl_aff *aff1,
 
70
        __isl_take isl_aff *aff2);
60
71
__isl_give isl_aff *isl_aff_add(__isl_take isl_aff *aff1,
61
72
        __isl_take isl_aff *aff2);
62
73
__isl_give isl_aff *isl_aff_sub(__isl_take isl_aff *aff1,
75
86
 
76
87
__isl_give isl_aff *isl_aff_gist(__isl_take isl_aff *aff,
77
88
        __isl_take isl_set *context);
 
89
__isl_give isl_aff *isl_aff_gist_params(__isl_take isl_aff *aff,
 
90
        __isl_take isl_set *context);
78
91
 
 
92
__isl_give isl_basic_set *isl_aff_le_basic_set(__isl_take isl_aff *aff1,
 
93
        __isl_take isl_aff *aff2);
79
94
__isl_give isl_basic_set *isl_aff_ge_basic_set(__isl_take isl_aff *aff1,
80
95
        __isl_take isl_aff *aff2);
81
96
 
 
97
__isl_give isl_aff *isl_aff_read_from_str(isl_ctx *ctx, const char *str);
82
98
__isl_give isl_printer *isl_printer_print_aff(__isl_take isl_printer *p,
83
99
        __isl_keep isl_aff *aff);
84
100
void isl_aff_dump(__isl_keep isl_aff *aff);
85
101
 
86
102
isl_ctx *isl_pw_aff_get_ctx(__isl_keep isl_pw_aff *pwaff);
87
 
__isl_give isl_dim *isl_pw_aff_get_dim(__isl_keep isl_pw_aff *pwaff);
 
103
__isl_give isl_space *isl_pw_aff_get_domain_space(__isl_keep isl_pw_aff *pwaff);
 
104
__isl_give isl_space *isl_pw_aff_get_space(__isl_keep isl_pw_aff *pwaff);
88
105
 
89
 
__isl_give isl_pw_aff *isl_pw_aff_empty(__isl_take isl_dim *dim);
 
106
__isl_give isl_pw_aff *isl_pw_aff_from_aff(__isl_take isl_aff *aff);
 
107
__isl_give isl_pw_aff *isl_pw_aff_empty(__isl_take isl_space *dim);
90
108
__isl_give isl_pw_aff *isl_pw_aff_alloc(__isl_take isl_set *set,
91
109
        __isl_take isl_aff *aff);
92
110
 
 
111
const char *isl_pw_aff_get_dim_name(__isl_keep isl_pw_aff *pa,
 
112
        enum isl_dim_type type, unsigned pos);
 
113
int isl_pw_aff_has_dim_id(__isl_keep isl_pw_aff *pa,
 
114
        enum isl_dim_type type, unsigned pos);
 
115
__isl_give isl_id *isl_pw_aff_get_dim_id(__isl_keep isl_pw_aff *pa,
 
116
        enum isl_dim_type type, unsigned pos);
 
117
__isl_give isl_pw_aff *isl_pw_aff_set_dim_id(__isl_take isl_pw_aff *pma,
 
118
        enum isl_dim_type type, unsigned pos, __isl_take isl_id *id);
 
119
 
93
120
int isl_pw_aff_is_empty(__isl_keep isl_pw_aff *pwaff);
 
121
int isl_pw_aff_plain_is_equal(__isl_keep isl_pw_aff *pwaff1,
 
122
        __isl_keep isl_pw_aff *pwaff2);
94
123
 
95
 
__isl_give isl_pw_aff *isl_pw_aff_max(__isl_take isl_pw_aff *pwaff1,
 
124
__isl_give isl_pw_aff *isl_pw_aff_union_min(__isl_take isl_pw_aff *pwaff1,
 
125
        __isl_take isl_pw_aff *pwaff2);
 
126
__isl_give isl_pw_aff *isl_pw_aff_union_max(__isl_take isl_pw_aff *pwaff1,
 
127
        __isl_take isl_pw_aff *pwaff2);
 
128
__isl_give isl_pw_aff *isl_pw_aff_union_add(__isl_take isl_pw_aff *pwaff1,
96
129
        __isl_take isl_pw_aff *pwaff2);
97
130
 
98
131
__isl_give isl_pw_aff *isl_pw_aff_copy(__isl_keep isl_pw_aff *pwaff);
102
135
int isl_pw_aff_involves_dims(__isl_keep isl_pw_aff *pwaff,
103
136
        enum isl_dim_type type, unsigned first, unsigned n);
104
137
 
 
138
int isl_pw_aff_is_cst(__isl_keep isl_pw_aff *pwaff);
 
139
 
105
140
__isl_give isl_pw_aff *isl_pw_aff_align_params(__isl_take isl_pw_aff *pwaff,
106
 
        __isl_take isl_dim *model);
 
141
        __isl_take isl_space *model);
 
142
 
 
143
__isl_give isl_pw_aff *isl_pw_aff_set_tuple_id(__isl_take isl_pw_aff *pwaff,
 
144
        enum isl_dim_type type, __isl_take isl_id *id);
107
145
 
108
146
__isl_give isl_set *isl_pw_aff_domain(__isl_take isl_pw_aff *pwaff);
109
147
 
 
148
__isl_give isl_pw_aff *isl_pw_aff_min(__isl_take isl_pw_aff *pwaff1,
 
149
        __isl_take isl_pw_aff *pwaff2);
 
150
__isl_give isl_pw_aff *isl_pw_aff_max(__isl_take isl_pw_aff *pwaff1,
 
151
        __isl_take isl_pw_aff *pwaff2);
 
152
__isl_give isl_pw_aff *isl_pw_aff_mul(__isl_take isl_pw_aff *pwaff1,
 
153
        __isl_take isl_pw_aff *pwaff2);
110
154
__isl_give isl_pw_aff *isl_pw_aff_add(__isl_take isl_pw_aff *pwaff1,
111
155
        __isl_take isl_pw_aff *pwaff2);
112
156
__isl_give isl_pw_aff *isl_pw_aff_sub(__isl_take isl_pw_aff *pwaff1,
114
158
__isl_give isl_pw_aff *isl_pw_aff_neg(__isl_take isl_pw_aff *pwaff);
115
159
__isl_give isl_pw_aff *isl_pw_aff_ceil(__isl_take isl_pw_aff *pwaff);
116
160
__isl_give isl_pw_aff *isl_pw_aff_floor(__isl_take isl_pw_aff *pwaff);
 
161
__isl_give isl_pw_aff *isl_pw_aff_mod(__isl_take isl_pw_aff *pwaff,
 
162
        isl_int mod);
 
163
 
 
164
__isl_give isl_pw_aff *isl_pw_aff_intersect_params(__isl_take isl_pw_aff *pa,
 
165
        __isl_take isl_set *set);
 
166
__isl_give isl_pw_aff *isl_pw_aff_intersect_domain(__isl_take isl_pw_aff *pa,
 
167
        __isl_take isl_set *set);
117
168
 
118
169
__isl_give isl_pw_aff *isl_pw_aff_cond(__isl_take isl_set *cond,
119
170
        __isl_take isl_pw_aff *pwaff_true, __isl_take isl_pw_aff *pwaff_false);
133
184
__isl_give isl_pw_aff *isl_pw_aff_coalesce(__isl_take isl_pw_aff *pwqp);
134
185
__isl_give isl_pw_aff *isl_pw_aff_gist(__isl_take isl_pw_aff *pwaff,
135
186
        __isl_take isl_set *context);
136
 
 
 
187
__isl_give isl_pw_aff *isl_pw_aff_gist_params(__isl_take isl_pw_aff *pwaff,
 
188
        __isl_take isl_set *context);
 
189
 
 
190
int isl_pw_aff_foreach_piece(__isl_keep isl_pw_aff *pwaff,
 
191
        int (*fn)(__isl_take isl_set *set, __isl_take isl_aff *aff,
 
192
                    void *user), void *user);
 
193
 
 
194
__isl_give isl_set *isl_set_from_pw_aff(__isl_take isl_pw_aff *pwaff);
137
195
__isl_give isl_map *isl_map_from_pw_aff(__isl_take isl_pw_aff *pwaff);
138
196
 
139
197
__isl_give isl_set *isl_pw_aff_nonneg_set(__isl_take isl_pw_aff *pwaff);
 
198
__isl_give isl_set *isl_pw_aff_zero_set(__isl_take isl_pw_aff *pwaff);
 
199
__isl_give isl_set *isl_pw_aff_non_zero_set(__isl_take isl_pw_aff *pwaff);
140
200
 
141
201
__isl_give isl_set *isl_pw_aff_eq_set(__isl_take isl_pw_aff *pwaff1,
142
202
        __isl_take isl_pw_aff *pwaff2);
 
203
__isl_give isl_set *isl_pw_aff_ne_set(__isl_take isl_pw_aff *pwaff1,
 
204
        __isl_take isl_pw_aff *pwaff2);
143
205
__isl_give isl_set *isl_pw_aff_le_set(__isl_take isl_pw_aff *pwaff1,
144
206
        __isl_take isl_pw_aff *pwaff2);
145
207
__isl_give isl_set *isl_pw_aff_lt_set(__isl_take isl_pw_aff *pwaff1,
149
211
__isl_give isl_set *isl_pw_aff_gt_set(__isl_take isl_pw_aff *pwaff1,
150
212
        __isl_take isl_pw_aff *pwaff2);
151
213
 
 
214
__isl_give isl_pw_aff *isl_pw_aff_read_from_str(isl_ctx *ctx, const char *str);
152
215
__isl_give isl_printer *isl_printer_print_pw_aff(__isl_take isl_printer *p,
153
216
        __isl_keep isl_pw_aff *pwaff);
154
217
void isl_pw_aff_dump(__isl_keep isl_pw_aff *pwaff);
155
218
 
 
219
__isl_give isl_pw_aff *isl_pw_aff_list_min(__isl_take isl_pw_aff_list *list);
 
220
__isl_give isl_pw_aff *isl_pw_aff_list_max(__isl_take isl_pw_aff_list *list);
 
221
 
 
222
__isl_give isl_set *isl_pw_aff_list_eq_set(__isl_take isl_pw_aff_list *list1,
 
223
        __isl_take isl_pw_aff_list *list2);
 
224
__isl_give isl_set *isl_pw_aff_list_ne_set(__isl_take isl_pw_aff_list *list1,
 
225
        __isl_take isl_pw_aff_list *list2);
 
226
__isl_give isl_set *isl_pw_aff_list_le_set(__isl_take isl_pw_aff_list *list1,
 
227
        __isl_take isl_pw_aff_list *list2);
 
228
__isl_give isl_set *isl_pw_aff_list_lt_set(__isl_take isl_pw_aff_list *list1,
 
229
        __isl_take isl_pw_aff_list *list2);
 
230
__isl_give isl_set *isl_pw_aff_list_ge_set(__isl_take isl_pw_aff_list *list1,
 
231
        __isl_take isl_pw_aff_list *list2);
 
232
__isl_give isl_set *isl_pw_aff_list_gt_set(__isl_take isl_pw_aff_list *list1,
 
233
        __isl_take isl_pw_aff_list *list2);
 
234
 
 
235
isl_ctx *isl_multi_aff_get_ctx(__isl_keep isl_multi_aff *maff);
 
236
__isl_give isl_space *isl_multi_aff_get_space(__isl_keep isl_multi_aff *maff);
 
237
__isl_give isl_multi_aff *isl_multi_aff_copy(__isl_keep isl_multi_aff *maff);
 
238
void *isl_multi_aff_free(__isl_take isl_multi_aff *maff);
 
239
 
 
240
unsigned isl_multi_aff_dim(__isl_keep isl_multi_aff *maff,
 
241
        enum isl_dim_type type);
 
242
__isl_give isl_aff *isl_multi_aff_get_aff(__isl_keep isl_multi_aff *multi,
 
243
        int pos);
 
244
 
 
245
__isl_give isl_multi_aff *isl_multi_aff_set_dim_name(
 
246
        __isl_take isl_multi_aff *maff,
 
247
        enum isl_dim_type type, unsigned pos, const char *s);
 
248
 
 
249
int isl_multi_aff_plain_is_equal(__isl_keep isl_multi_aff *maff1,
 
250
        __isl_keep isl_multi_aff *maff2);
 
251
 
 
252
__isl_give isl_multi_aff *isl_multi_aff_add(__isl_take isl_multi_aff *maff1,
 
253
        __isl_take isl_multi_aff *maff2);
 
254
 
 
255
__isl_give isl_multi_aff *isl_multi_aff_scale(__isl_take isl_multi_aff *maff,
 
256
        isl_int f);
 
257
 
 
258
__isl_give isl_multi_aff *isl_multi_aff_gist_params(
 
259
        __isl_take isl_multi_aff *maff, __isl_take isl_set *context);
 
260
__isl_give isl_multi_aff *isl_multi_aff_gist(__isl_take isl_multi_aff *maff,
 
261
        __isl_take isl_set *context);
 
262
 
 
263
__isl_give isl_multi_aff *isl_multi_aff_lift(__isl_take isl_multi_aff *maff,
 
264
        __isl_give isl_local_space **ls);
 
265
 
 
266
__isl_give isl_printer *isl_printer_print_multi_aff(__isl_take isl_printer *p,
 
267
        __isl_keep isl_multi_aff *maff);
 
268
 
 
269
__isl_give isl_multi_aff *isl_multi_aff_read_from_str(isl_ctx *ctx,
 
270
                const char *str);
 
271
void isl_multi_aff_dump(__isl_keep isl_multi_aff *maff);
 
272
 
 
273
__isl_give isl_pw_multi_aff *isl_pw_multi_aff_alloc(__isl_take isl_set *set,
 
274
        __isl_take isl_multi_aff *maff);
 
275
__isl_give isl_pw_multi_aff *isl_pw_multi_aff_copy(
 
276
        __isl_keep isl_pw_multi_aff *pma);
 
277
void *isl_pw_multi_aff_free(__isl_take isl_pw_multi_aff *pma);
 
278
 
 
279
unsigned isl_pw_multi_aff_dim(__isl_keep isl_pw_multi_aff *pma,
 
280
        enum isl_dim_type type);
 
281
 
 
282
isl_ctx *isl_pw_multi_aff_get_ctx(__isl_keep isl_pw_multi_aff *pma);
 
283
__isl_give isl_space *isl_pw_multi_aff_get_domain_space(
 
284
        __isl_keep isl_pw_multi_aff *pma);
 
285
__isl_give isl_space *isl_pw_multi_aff_get_space(
 
286
        __isl_keep isl_pw_multi_aff *pma);
 
287
const char *isl_pw_multi_aff_get_tuple_name(__isl_keep isl_pw_multi_aff *pma,
 
288
        enum isl_dim_type type);
 
289
__isl_give isl_id *isl_pw_multi_aff_get_tuple_id(
 
290
        __isl_keep isl_pw_multi_aff *pma, enum isl_dim_type type);
 
291
int isl_pw_multi_aff_has_tuple_id(__isl_keep isl_pw_multi_aff *pma,
 
292
        enum isl_dim_type type);
 
293
__isl_give isl_pw_multi_aff *isl_pw_multi_aff_set_tuple_id(
 
294
        __isl_take isl_pw_multi_aff *pma,
 
295
        enum isl_dim_type type, __isl_take isl_id *id);
 
296
 
 
297
__isl_give isl_pw_multi_aff *isl_pw_multi_aff_empty(__isl_take isl_space *space);
 
298
 
 
299
const char *isl_pw_multi_aff_get_dim_name(__isl_keep isl_pw_multi_aff *pma,
 
300
        enum isl_dim_type type, unsigned pos);
 
301
__isl_give isl_id *isl_pw_multi_aff_get_dim_id(
 
302
        __isl_keep isl_pw_multi_aff *pma, enum isl_dim_type type,
 
303
        unsigned pos);
 
304
__isl_give isl_pw_multi_aff *isl_pw_multi_aff_set_dim_id(
 
305
        __isl_take isl_pw_multi_aff *pma,
 
306
        enum isl_dim_type type, unsigned pos, __isl_take isl_id *id);
 
307
 
 
308
int isl_pw_multi_aff_plain_is_equal(__isl_keep isl_pw_multi_aff *pma1,
 
309
        __isl_keep isl_pw_multi_aff *pma2);
 
310
 
 
311
__isl_give isl_pw_multi_aff *isl_pw_multi_aff_union_add(
 
312
        __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
 
313
 
 
314
__isl_give isl_pw_multi_aff *isl_pw_multi_aff_add(
 
315
        __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
 
316
 
 
317
__isl_give isl_pw_multi_aff *isl_pw_multi_aff_intersect_params(
 
318
        __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
 
319
__isl_give isl_pw_multi_aff *isl_pw_multi_aff_intersect_domain(
 
320
        __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
 
321
 
 
322
__isl_give isl_pw_multi_aff *isl_pw_multi_aff_gist_params(
 
323
        __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
 
324
__isl_give isl_pw_multi_aff *isl_pw_multi_aff_gist(
 
325
        __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
 
326
 
 
327
int isl_pw_multi_aff_foreach_piece(__isl_keep isl_pw_multi_aff *pma,
 
328
        int (*fn)(__isl_take isl_set *set, __isl_take isl_multi_aff *maff,
 
329
                    void *user), void *user);
 
330
 
 
331
__isl_give isl_map *isl_map_from_pw_multi_aff(__isl_take isl_pw_multi_aff *pma);
 
332
__isl_give isl_set *isl_set_from_pw_multi_aff(__isl_take isl_pw_multi_aff *pma);
 
333
 
 
334
__isl_give isl_printer *isl_printer_print_pw_multi_aff(__isl_take isl_printer *p,
 
335
        __isl_keep isl_pw_multi_aff *pma);
 
336
 
 
337
__isl_give isl_pw_multi_aff *isl_pw_multi_aff_from_set(__isl_take isl_set *set);
 
338
__isl_give isl_pw_multi_aff *isl_pw_multi_aff_from_map(__isl_take isl_map *map);
 
339
 
 
340
__isl_give isl_pw_multi_aff *isl_pw_multi_aff_read_from_str(isl_ctx *ctx,
 
341
        const char *str);
 
342
void isl_pw_multi_aff_dump(__isl_keep isl_pw_multi_aff *pma);
 
343
 
156
344
#if defined(__cplusplus)
157
345
}
158
346
#endif
159
347
 
 
348
#include <isl/dim.h>
 
349
 
160
350
#endif