add isl_basic_map_equate
[platform/upstream/isl.git] / include / isl / map.h
index ec65e02..a8c1497 100644 (file)
@@ -272,6 +272,7 @@ int isl_basic_map_plain_is_empty(__isl_keep isl_basic_map *bmap);
 int isl_basic_map_fast_is_empty(__isl_keep isl_basic_map *bmap);
 __isl_export
 int isl_basic_map_is_empty(__isl_keep isl_basic_map *bmap);
+__isl_export
 int isl_basic_map_is_subset(__isl_keep isl_basic_map *bmap1,
                __isl_keep isl_basic_map *bmap2);
 int isl_basic_map_is_strict_subset(__isl_keep isl_basic_map *bmap1,
@@ -360,6 +361,10 @@ __isl_give isl_map *isl_map_subtract(
                __isl_take isl_map *map2);
 __isl_give isl_map *isl_map_subtract_domain(__isl_take isl_map *map,
        __isl_take isl_set *dom);
+__isl_give isl_map *isl_map_subtract_range(__isl_take isl_map *map,
+       __isl_take isl_set *dom);
+__isl_export
+__isl_give isl_map *isl_map_complement(__isl_take isl_map *map);
 struct isl_map *isl_map_fix_input_si(struct isl_map *map,
                unsigned input, int value);
 __isl_give isl_map *isl_map_fix_si(__isl_take isl_map *map,
@@ -403,15 +408,21 @@ __isl_give isl_map *isl_map_project_out(__isl_take isl_map *map,
 __isl_give isl_basic_map *isl_basic_map_remove_divs(
        __isl_take isl_basic_map *bmap);
 __isl_give isl_map *isl_map_remove_divs(__isl_take isl_map *map);
+__isl_give isl_map *isl_map_eliminate(__isl_take isl_map *map,
+       enum isl_dim_type type, unsigned first, unsigned n);
 __isl_give isl_map *isl_map_remove_dims(__isl_take isl_map *map,
        enum isl_dim_type type, unsigned first, unsigned n);
 struct isl_map *isl_map_remove_inputs(struct isl_map *map,
        unsigned first, unsigned n);
 
+__isl_give isl_basic_map *isl_basic_map_equate(__isl_take isl_basic_map *bmap,
+       enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2);
 __isl_give isl_map *isl_map_equate(__isl_take isl_map *map,
        enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2);
 __isl_give isl_map *isl_map_oppose(__isl_take isl_map *map,
        enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2);
+__isl_give isl_map *isl_map_order_gt(__isl_take isl_map *map,
+       enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2);
 
 __isl_export
 __isl_give isl_map *isl_set_identity(__isl_take isl_set *set);
@@ -477,6 +488,7 @@ __isl_export
 int isl_map_is_strict_subset(__isl_keep isl_map *map1, __isl_keep isl_map *map2);
 __isl_export
 int isl_map_is_equal(__isl_keep isl_map *map1, __isl_keep isl_map *map2);
+int isl_map_plain_is_single_valued(__isl_keep isl_map *map);
 __isl_export
 int isl_map_is_single_valued(__isl_keep isl_map *map);
 int isl_map_plain_is_injective(__isl_keep isl_map *map);
@@ -492,6 +504,11 @@ int isl_map_can_zip(__isl_keep isl_map *map);
 __isl_give isl_basic_map *isl_basic_map_zip(__isl_take isl_basic_map *bmap);
 __isl_give isl_map *isl_map_zip(__isl_take isl_map *map);
 
+int isl_basic_map_can_curry(__isl_keep isl_basic_map *bmap);
+int isl_map_can_curry(__isl_keep isl_map *map);
+__isl_give isl_basic_map *isl_basic_map_curry(__isl_take isl_basic_map *bmap);
+__isl_give isl_map *isl_map_curry(__isl_take isl_map *map);
+
 __isl_give isl_map *isl_map_make_disjoint(__isl_take isl_map *map);
 __isl_give isl_map *isl_basic_map_compute_divs(__isl_take isl_basic_map *bmap);
 __isl_give isl_map *isl_map_compute_divs(__isl_take isl_map *map);
@@ -520,6 +537,8 @@ __isl_give isl_map *isl_map_gist(__isl_take isl_map *map,
 __isl_export
 __isl_give isl_map *isl_map_gist_domain(__isl_take isl_map *map,
        __isl_take isl_set *context);
+__isl_give isl_map *isl_map_gist_range(__isl_take isl_map *map,
+       __isl_take isl_set *context);
 __isl_give isl_map *isl_map_gist_params(__isl_take isl_map *map,
        __isl_take isl_set *context);
 __isl_give isl_map *isl_map_gist_basic_map(__isl_take isl_map *map,
@@ -539,6 +558,7 @@ int isl_map_foreach_basic_map(__isl_keep isl_map *map,
 
 __isl_give isl_map *isl_set_lifting(__isl_take isl_set *set);
 
+__isl_give isl_map *isl_map_fixed_power(__isl_take isl_map *map, isl_int exp);
 __isl_give isl_map *isl_map_power(__isl_take isl_map *map, int *exact);
 __isl_give isl_map *isl_map_reaching_path_lengths(__isl_take isl_map *map,
        int *exact);
@@ -577,6 +597,9 @@ __isl_give isl_basic_map *isl_basic_map_from_multi_aff(
 __isl_give isl_basic_map *isl_basic_map_from_aff_list(
        __isl_take isl_space *domain_dim, __isl_take isl_aff_list *list);
 
+__isl_give isl_map *isl_map_from_aff(__isl_take isl_aff *aff);
+__isl_give isl_map *isl_map_from_multi_aff(__isl_take isl_multi_aff *maff);
+
 __isl_give isl_pw_aff *isl_map_dim_max(__isl_take isl_map *map, int pos);
 
 #if defined(__cplusplus)