From: Sven Verdoolaege Date: Mon, 7 Oct 2013 20:16:33 +0000 (+0200) Subject: add isl_basic_set_set_tuple_id X-Git-Tag: isl-0.13~106 X-Git-Url: https://repo.or.cz/w/isl.git/commitdiff_plain/a69499aa5876a7b5468cd3c09d29f0b08a4866c8 add isl_basic_set_set_tuple_id Tested-by: Michael Kruse Signed-off-by: Sven Verdoolaege --- diff --git a/doc/user.pod b/doc/user.pod index e2b74318..b09171ba 100644 --- a/doc/user.pod +++ b/doc/user.pod @@ -1813,6 +1813,9 @@ use the following functions instead. The identifiers or names of the domain and range spaces of a set or relation can be read off or set using the following functions. + __isl_give isl_basic_set *isl_basic_set_set_tuple_id( + __isl_take isl_basic_set *bset, + __isl_take isl_id *id); __isl_give isl_set *isl_set_set_tuple_id( __isl_take isl_set *set, __isl_take isl_id *id); __isl_give isl_set *isl_set_reset_tuple_id( @@ -1820,6 +1823,9 @@ or relation can be read off or set using the following functions. int isl_set_has_tuple_id(__isl_keep isl_set *set); __isl_give isl_id *isl_set_get_tuple_id( __isl_keep isl_set *set); + __isl_give isl_basic_map *isl_basic_map_set_tuple_id( + __isl_take isl_basic_map *bmap, + enum isl_dim_type type, __isl_take isl_id *id); __isl_give isl_map *isl_map_set_tuple_id( __isl_take isl_map *map, enum isl_dim_type type, __isl_take isl_id *id); diff --git a/include/isl/map.h b/include/isl/map.h index 265169c7..709dce14 100644 --- a/include/isl/map.h +++ b/include/isl/map.h @@ -86,6 +86,9 @@ __isl_give isl_basic_map *isl_basic_map_set_dim_name( __isl_give isl_map *isl_map_set_dim_name(__isl_take isl_map *map, enum isl_dim_type type, unsigned pos, const char *s); +__isl_give isl_basic_map *isl_basic_map_set_tuple_id( + __isl_take isl_basic_map *bmap, + enum isl_dim_type type, __isl_take isl_id *id); __isl_give isl_map *isl_map_set_dim_id(__isl_take isl_map *map, enum isl_dim_type type, unsigned pos, __isl_take isl_id *id); int isl_basic_map_has_dim_id(__isl_keep isl_basic_map *bmap, diff --git a/include/isl/set.h b/include/isl/set.h index 9d90c145..d4042a2f 100644 --- a/include/isl/set.h +++ b/include/isl/set.h @@ -66,6 +66,8 @@ __isl_give isl_set *isl_set_set_dim_name(__isl_take isl_set *set, __isl_give isl_id *isl_basic_set_get_dim_id(__isl_keep isl_basic_set *bset, enum isl_dim_type type, unsigned pos); +__isl_give isl_basic_set *isl_basic_set_set_tuple_id( + __isl_take isl_basic_set *bset, __isl_take isl_id *id); __isl_give isl_set *isl_set_set_dim_id(__isl_take isl_set *set, enum isl_dim_type type, unsigned pos, __isl_take isl_id *id); int isl_set_has_dim_id(__isl_keep isl_set *set, diff --git a/isl_map.c b/isl_map.c index 6bebe6d4..7e68a653 100644 --- a/isl_map.c +++ b/isl_map.c @@ -418,6 +418,30 @@ error: return NULL; } +/* Replace the identifier of the tuple of type "type" by "id". + */ +__isl_give isl_basic_map *isl_basic_map_set_tuple_id( + __isl_take isl_basic_map *bmap, + enum isl_dim_type type, __isl_take isl_id *id) +{ + bmap = isl_basic_map_cow(bmap); + if (!bmap) + return isl_id_free(id); + bmap->dim = isl_space_set_tuple_id(bmap->dim, type, id); + if (!bmap->dim) + return isl_basic_map_free(bmap); + bmap = isl_basic_map_finalize(bmap); + return bmap; +} + +/* Replace the identifier of the tuple by "id". + */ +__isl_give isl_basic_set *isl_basic_set_set_tuple_id( + __isl_take isl_basic_set *bset, __isl_take isl_id *id) +{ + return isl_basic_map_set_tuple_id(bset, isl_dim_set, id); +} + /* Does the input or output tuple have a name? */ int isl_map_has_tuple_name(__isl_keep isl_map *map, enum isl_dim_type type)