isl_pw_qpolynomial_fold_bound: fix handling or zero input with wrapped domain
[platform/upstream/isl.git] / isl_dim_private.h
1 #include <isl_dim.h>
2 #include <isl_hash.h>
3
4 struct isl_name;
5 struct isl_dim {
6         int ref;
7
8         struct isl_ctx *ctx;
9
10         unsigned nparam;
11         unsigned n_in;          /* zero for sets */
12         unsigned n_out;         /* dim for sets */
13
14         struct isl_name *tuple_name[2];
15         struct isl_dim *nested[2];
16
17         unsigned n_name;
18         struct isl_name **names;
19 };
20
21 uint32_t isl_dim_get_hash(__isl_keep isl_dim *dim);
22
23 __isl_give isl_dim *isl_dim_as_set_dim(__isl_take isl_dim *dim);
24
25 unsigned isl_dim_offset(__isl_keep isl_dim *dim, enum isl_dim_type type);
26
27 int isl_dim_is_named_or_nested(__isl_keep isl_dim *dim, enum isl_dim_type type);
28 __isl_give isl_dim *isl_dim_reset(__isl_take isl_dim *dim,
29         enum isl_dim_type type);
30 __isl_give isl_dim *isl_dim_flatten(__isl_take isl_dim *dim);
31
32 __isl_give isl_dim *isl_dim_replace(__isl_take isl_dim *dst,
33         enum isl_dim_type type, __isl_keep isl_dim *src);