Polly 23.0.0git
isl_aff_private.h
Go to the documentation of this file.
1#ifndef ISL_AFF_PRIVATE_H
2#define ISL_AFF_PRIVATE_H
3
4#include <isl/aff.h>
5#include <isl/vec.h>
6#include <isl/mat.h>
7#include <isl/local_space.h>
8#include <isl_int.h>
9#include <isl_reordering.h>
10#include <isl/stream.h>
11
12/* ls represents the domain space.
13 *
14 * If the first two elements of "v" (the denominator and the constant term)
15 * are zero, then the isl_aff represents NaN.
16 */
17struct isl_aff {
18 int ref;
19
22};
23
24#undef EL
25#define EL isl_aff
26
27#include <isl_list_templ.h>
28
30 struct isl_set *set;
31 struct isl_aff *aff;
32};
33
34struct isl_pw_aff {
35 int ref;
36
38
39 int n;
40
41 size_t size;
43};
44
45#undef PW
46#define PW isl_pw_aff
47
48#include <isl_pw_templ.h>
49
50#undef EL
51#define EL isl_pw_aff
52
53#include <isl_list_templ.h>
54
59
61 int ref;
62
64
65 int n;
66
67 size_t size;
69};
70
71#undef PW
72#define PW isl_pw_multi_aff
73
74#include <isl_pw_templ.h>
75
79
82
86 __isl_take isl_space *space);
89
92 enum isl_dim_type type, int pos, isl_int v);
94
96
98
101
103 __isl_take isl_mat *div, int *exp);
104
106
108
110 int n);
112 __isl_take isl_space *space);
116 __isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2);
117
119
122
124 __isl_take isl_pw_aff *pwaff2, int max);
125
128 __isl_take isl_pw_aff_list *list);
129
132 isl_int f);
134 isl_int f);
135
137
139 __isl_keep isl_space *space);
141 __isl_keep isl_space *space);
142
143#undef BASE
144#define BASE aff
145
146#include <isl_multi_templ.h>
147
149
152
155
158
159#undef EL
160#define EL isl_pw_multi_aff
161
162#include <isl_list_templ.h>
163
166
169 enum isl_dim_type dst_type, unsigned dst_pos,
170 enum isl_dim_type src_type, unsigned src_pos, unsigned n);
171
178
181 enum isl_dim_type type, unsigned first, unsigned n);
182
184 __isl_keep isl_multi_aff *ma, int n_before, int n_after,
185 int n_div_ma, int n_div_bmap,
186 isl_int f, isl_int c1, isl_int c2, isl_int g, int has_denom);
187
192 __isl_keep isl_pw_aff *subs);
193
196
199
203
205 __isl_keep isl_space *space);
207 __isl_keep isl_space *space);
208
210
211#undef BASE
212#define BASE pw_aff
213#undef DOMBASE
214#define DOMBASE set
215#define EXPLICIT_DOMAIN
216
217#include <isl_multi_templ.h>
218
219#undef EXPLICIT_DOMAIN
220
223
224#undef EL
225#define EL isl_union_pw_aff
226
227#include <isl_list_templ.h>
228
229#undef BASE
230#define BASE union_pw_aff
231#undef DOMBASE
232#define DOMBASE union_set
233#define EXPLICIT_DOMAIN
234
235#include <isl_multi_templ.h>
236
237#undef EXPLICIT_DOMAIN
238
239#undef EL
240#define EL isl_union_pw_multi_aff
241
242#include <isl_list_templ.h>
243
244#endif
struct isl_union_pw_aff isl_union_pw_aff
Definition aff_type.h:23
struct isl_multi_aff isl_multi_aff
Definition aff_type.h:29
struct isl_multi_pw_aff isl_multi_pw_aff
Definition aff_type.h:43
#define __isl_take
Definition ctx.h:22
isl_stat
Definition ctx.h:84
#define __isl_give
Definition ctx.h:19
#define __isl_keep
Definition ctx.h:25
int isl_size
Definition ctx.h:97
isl_bool
Definition ctx.h:89
c1
Definition dot.c:2
__isl_give isl_pw_aff * isl_pw_aff_union_opt(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2, int max)
Definition isl_aff.c:2968
__isl_give isl_aff * isl_aff_substitute_equalities(__isl_take isl_aff *aff, __isl_take isl_basic_set *eq)
Definition isl_aff.c:2303
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_reset_domain_space(__isl_take isl_pw_multi_aff *pwmaff, __isl_take isl_space *space)
__isl_give isl_pw_aff * isl_pw_aff_set_rational(__isl_take isl_pw_aff *pwaff)
Definition isl_aff.c:3980
isl_stat isl_pw_multi_aff_check_named_params(__isl_keep isl_pw_multi_aff *pma)
isl_size isl_aff_domain_dim(__isl_keep isl_aff *aff, enum isl_dim_type type)
Definition isl_aff.c:498
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_substitute(__isl_take isl_pw_multi_aff *pma, unsigned pos, __isl_keep isl_pw_aff *subs)
Definition isl_aff.c:5860
__isl_keep isl_multi_aff * isl_pw_multi_aff_peek_base_at(__isl_keep isl_pw_multi_aff *pma, int pos)
isl_stat isl_seq_preimage(isl_int *dst, isl_int *src, __isl_keep isl_multi_aff *ma, int n_before, int n_after, int n_div_ma, int n_div_bmap, isl_int f, isl_int c1, isl_int c2, isl_int g, int has_denom)
Definition isl_aff.c:5944
isl_stat isl_multi_aff_check_named_params(__isl_keep isl_multi_aff *ma)
__isl_give isl_pw_multi_aff * isl_stream_read_pw_multi_aff(__isl_keep isl_stream *s)
int isl_aff_plain_cmp(__isl_keep isl_aff *aff1, __isl_keep isl_aff *aff2)
Definition isl_aff.c:7661
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_move_dims(__isl_take isl_pw_multi_aff *pma, enum isl_dim_type dst_type, unsigned dst_pos, enum isl_dim_type src_type, unsigned src_pos, unsigned n)
__isl_give isl_pw_aff * isl_pw_aff_alloc_size(__isl_take isl_space *space, int n)
__isl_give isl_union_pw_aff * isl_stream_read_union_pw_aff(__isl_keep isl_stream *s)
__isl_give isl_aff * isl_aff_normalize(__isl_take isl_aff *aff)
Definition isl_aff.c:1704
__isl_keep isl_aff * isl_pw_aff_peek_base_at(__isl_keep isl_pw_aff *pa, int pos)
isl_stat isl_pw_aff_check_named_params(__isl_keep isl_pw_aff *pa)
__isl_give isl_pw_aff_list * isl_pw_aff_list_set_rational(__isl_take isl_pw_aff_list *list)
Definition isl_aff.c:4001
__isl_give isl_aff * isl_aff_expand_divs(__isl_take isl_aff *aff, __isl_take isl_mat *div, int *exp)
Definition isl_aff.c:1901
__isl_give isl_multi_aff * isl_aff_as_domain_extension(__isl_take isl_aff *aff)
Definition isl_aff.c:5249
__isl_give isl_pw_aff * isl_pw_aff_scale(__isl_take isl_pw_aff *pwaff, isl_int f)
__isl_give isl_aff * isl_aff_reset_space_and_domain(__isl_take isl_aff *aff, __isl_take isl_space *space, __isl_take isl_space *domain)
Definition isl_aff.c:693
__isl_give isl_aff * isl_aff_scale_down(__isl_take isl_aff *aff, isl_int f)
Definition isl_aff.c:2105
__isl_give isl_aff * isl_aff_set_constant(__isl_take isl_aff *aff, isl_int v)
Definition isl_aff.c:909
__isl_give isl_multi_aff * isl_multi_aff_align_divs(__isl_take isl_multi_aff *maff)
Definition isl_aff.c:6188
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_add_disjoint(__isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2)
__isl_give isl_pw_aff * isl_pw_aff_reset_space(__isl_take isl_pw_aff *pwaff, __isl_take isl_space *space)
__isl_give isl_map * isl_map_intersect_multi_pw_aff_explicit_domain(__isl_take isl_map *map, __isl_keep isl_multi_pw_aff *mpa)
Definition isl_aff.c:6770
__isl_give isl_aff * isl_aff_add_constant(__isl_take isl_aff *aff, isl_int v)
Definition isl_aff.c:986
__isl_give isl_multi_aff * isl_multi_aff_from_basic_set_equalities(__isl_take isl_basic_set *bset)
Definition isl_aff.c:5151
__isl_give isl_pw_aff * isl_pw_aff_reset_domain_space(__isl_take isl_pw_aff *pwaff, __isl_take isl_space *space)
isl_bool isl_aff_matching_params(__isl_keep isl_aff *aff, __isl_keep isl_space *space)
Definition isl_aff.c:4025
isl_bool isl_pw_aff_matching_params(__isl_keep isl_pw_aff *pa, __isl_keep isl_space *space)
Definition isl_aff.c:6647
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_project_out(__isl_take isl_pw_multi_aff *pma, enum isl_dim_type type, unsigned first, unsigned n)
isl_stat isl_aff_check_match_domain_space(__isl_keep isl_aff *aff, __isl_keep isl_space *space)
Definition isl_aff.c:4044
__isl_give isl_aff * isl_aff_remove_unused_divs(__isl_take isl_aff *aff)
Definition isl_aff.c:1477
__isl_give isl_aff * isl_stream_read_aff(__isl_keep isl_stream *s)
Definition isl_input.c:3554
__isl_give isl_aff * isl_aff_realign_domain(__isl_take isl_aff *aff, __isl_take isl_reordering *r)
Definition isl_aff.c:703
__isl_give isl_pw_aff * isl_pw_aff_add_disjoint(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
__isl_give isl_aff * isl_aff_alloc_vec(__isl_take isl_local_space *ls, __isl_take isl_vec *v)
Definition isl_aff.c:101
__isl_give isl_aff * isl_aff_alloc(__isl_take isl_local_space *ls)
Definition isl_aff.c:124
__isl_give isl_pw_aff * isl_stream_read_pw_aff(__isl_keep isl_stream *s)
__isl_give isl_aff * isl_aff_set_coefficient(__isl_take isl_aff *aff, enum isl_dim_type type, int pos, isl_int v)
Definition isl_aff.c:1184
__isl_give isl_multi_aff * isl_multi_aff_dup(__isl_keep isl_multi_aff *multi)
__isl_give isl_pw_aff * isl_pw_aff_scale_down(__isl_take isl_pw_aff *pwaff, isl_int f)
Definition isl_aff.c:3374
__isl_give isl_aff * isl_aff_domain_factor_domain(__isl_take isl_aff *aff)
isl_stat isl_pw_aff_check_match_domain_space(__isl_keep isl_pw_aff *pa, __isl_keep isl_space *space)
Definition isl_aff.c:6666
__isl_give isl_aff * isl_aff_reset_domain_space(__isl_take isl_aff *aff, __isl_take isl_space *space)
Definition isl_aff.c:671
isl_size isl_aff_domain_offset(__isl_keep isl_aff *aff, enum isl_dim_type type)
Definition isl_aff.c:535
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_reset_space(__isl_take isl_pw_multi_aff *pwmaff, __isl_take isl_space *space)
__isl_give isl_pw_aff * isl_pw_aff_domain_factor_domain(__isl_take isl_pw_aff *pa)
__isl_give isl_multi_aff * isl_multi_aff_from_aff_mat(__isl_take isl_space *space, __isl_take isl_mat *mat)
Definition isl_aff.c:4133
__isl_give isl_basic_set * isl_aff_pos_basic_set(__isl_take isl_aff *aff)
Definition isl_aff.c:2422
mpz_t isl_int
Definition isl_int_gmp.h:9
static unsigned pos(__isl_keep isl_space *space, enum isl_dim_type type)
Definition isl_map.c:73
#define isl_set
#define isl_basic_set
enum isl_fold type
Definition isl_test.c:3867
const char * pa
Definition isl_test.c:7173
const char * ma
Definition isl_test.c:7387
const char * map
Definition isl_test.c:1791
const char * pma
Definition isl_test.c:3019
const char * aff
Definition isl_test.c:7130
const char * f
Definition isl_test.c:8453
isl_dim_type
Definition space_type.h:13
isl_vec * v
isl_local_space * ls
struct isl_aff * aff
struct isl_set * set
isl_space * dim
struct isl_pw_aff_piece p[1]
struct isl_pw_multi_aff_piece p[1]
static Signature domain
n
Definition youcefn.c:8