add isl_basic_set_foreach_lexopt
[platform/upstream/isl.git] / isl_map_private.h
index 031ba62..0fa1d4c 100644 (file)
@@ -12,6 +12,7 @@
 
 #define isl_basic_set  isl_basic_map
 #define isl_set                isl_map
+#define isl_basic_set_list     isl_basic_map_list
 #include <isl/set.h>
 #include <isl/map.h>
 #include <isl_reordering.h>
@@ -111,7 +112,11 @@ __isl_give isl_map *isl_map_reset_dim(__isl_take isl_map *map,
 
 unsigned isl_basic_map_offset(struct isl_basic_map *bmap,
                                        enum isl_dim_type type);
+unsigned isl_basic_set_offset(struct isl_basic_set *bset,
+                                       enum isl_dim_type type);
 
+int isl_basic_map_may_be_set(__isl_keep isl_basic_map *bmap);
+int isl_map_may_be_set(__isl_keep isl_map *map);
 int isl_map_compatible_domain(struct isl_map *map, struct isl_set *set);
 int isl_basic_map_compatible_domain(struct isl_basic_map *bmap,
                struct isl_basic_set *bset);
@@ -192,11 +197,11 @@ struct isl_basic_set *isl_basic_set_gauss(
        struct isl_basic_set *bset, int *progress);
 __isl_give isl_basic_set *isl_basic_set_sort_constraints(
        __isl_take isl_basic_set *bset);
-int isl_basic_map_fast_cmp(const __isl_keep isl_basic_map *bmap1,
+int isl_basic_map_plain_cmp(const __isl_keep isl_basic_map *bmap1,
        const __isl_keep isl_basic_map *bmap2);
-int isl_basic_set_fast_is_equal(__isl_keep isl_basic_set *bset1,
+int isl_basic_set_plain_is_equal(__isl_keep isl_basic_set *bset1,
        __isl_keep isl_basic_set *bset2);
-int isl_basic_map_fast_is_equal(__isl_keep isl_basic_map *bmap1,
+int isl_basic_map_plain_is_equal(__isl_keep isl_basic_map *bmap1,
        __isl_keep isl_basic_map *bmap2);
 struct isl_basic_map *isl_basic_map_normalize_constraints(
        struct isl_basic_map *bmap);
@@ -260,6 +265,7 @@ struct isl_basic_set *isl_basic_set_lineality_space(struct isl_basic_set *bset);
 struct isl_basic_set *isl_basic_set_set_rational(struct isl_basic_set *bset);
 __isl_give isl_basic_map *isl_basic_map_set_rational(
        __isl_take isl_basic_map *bmap);
+__isl_give isl_map *isl_map_set_rational(__isl_take isl_map *map);
 
 struct isl_mat;
 
@@ -267,6 +273,10 @@ struct isl_basic_set *isl_basic_set_preimage(struct isl_basic_set *bset,
        struct isl_mat *mat);
 struct isl_set *isl_set_preimage(struct isl_set *set, struct isl_mat *mat);
 
+__isl_give isl_basic_set *isl_basic_set_transform_dims(
+       __isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned first,
+       __isl_take isl_mat *trans);
+
 isl_int *isl_set_wrap_facet(__isl_keep isl_set *set,
        isl_int *facet, isl_int *ridge);
 
@@ -287,4 +297,26 @@ int isl_basic_set_add_div_constraints_var(__isl_keep isl_basic_set *bset,
 int isl_basic_map_is_div_constraint(__isl_keep isl_basic_map *bmap,
        isl_int *constraint, unsigned div);
 
+__isl_give isl_basic_set *isl_basic_set_from_local_space(
+       __isl_take isl_local_space *ls);
+__isl_give isl_basic_map *isl_basic_map_from_local_space(
+       __isl_take isl_local_space *ls);
+__isl_give isl_basic_set *isl_basic_set_expand_divs(
+       __isl_take isl_basic_set *bset, __isl_take isl_mat *div, int *exp);
+
+int isl_basic_map_divs_known(__isl_keep isl_basic_map *bmap);
+
+__isl_give isl_map *isl_map_inline_foreach_basic_map(__isl_take isl_map *map,
+       __isl_give isl_basic_map *(*fn)(__isl_take isl_basic_map *bmap));
+
+__isl_give isl_map *isl_map_align_params_map_map_and(
+       __isl_take isl_map *map1, __isl_take isl_map *map2,
+       __isl_give isl_map *(*fn)(__isl_take isl_map *map1,
+                                   __isl_take isl_map *map2));
+
+int isl_basic_set_foreach_lexopt(__isl_keep isl_basic_set *bset, int max,
+       int (*fn)(__isl_take isl_basic_set *dom, __isl_take isl_aff_list *list,
+                 void *user),
+       void *user);
+
 #endif