__isl_give isl_union_map *isl_union_set_unwrap(
__isl_take isl_union_set *uset);
+=item * Dimension manipulation
+
+ __isl_give isl_set *isl_set_add_dims(
+ __isl_take isl_set *set,
+ enum isl_dim_type type, unsigned n);
+ __isl_give isl_map *isl_map_add_dims(
+ __isl_take isl_map *map,
+ enum isl_dim_type type, unsigned n);
+
+It is usually not advisable to directly change the (input or output)
+space of a set or a relation as this removes the name and the internal
+structure of the space. However, the above functions can be useful
+to add new parameters.
+
=back
=head2 Binary Operations
__isl_give isl_basic_map *isl_map_convex_hull(__isl_take isl_map *map);
__isl_give isl_basic_map *isl_basic_map_add(__isl_take isl_basic_map *bmap,
enum isl_dim_type type, unsigned n);
-__isl_give isl_map *isl_map_add(__isl_take isl_map *map,
+__isl_give isl_map *isl_map_add_dims(__isl_take isl_map *map,
enum isl_dim_type type, unsigned n);
__isl_give isl_map *isl_map_insert(__isl_take isl_map *map,
enum isl_dim_type type, unsigned pos, unsigned n);
enum isl_dim_type type, unsigned pos, unsigned n);
__isl_give isl_basic_set *isl_basic_set_add(__isl_take isl_basic_set *bset,
enum isl_dim_type type, unsigned n);
-__isl_give isl_set *isl_set_add(__isl_take isl_set *set,
+__isl_give isl_set *isl_set_add_dims(__isl_take isl_set *set,
enum isl_dim_type type, unsigned n);
__isl_give isl_basic_set *isl_basic_set_move_dims(__isl_take isl_basic_set *bset,
enum isl_dim_type dst_type, unsigned dst_pos,
return (isl_set *)isl_map_insert((isl_map *)set, type, pos, n);
}
-__isl_give isl_map *isl_map_add(__isl_take isl_map *map,
+__isl_give isl_map *isl_map_add_dims(__isl_take isl_map *map,
enum isl_dim_type type, unsigned n)
{
if (!map)
return isl_map_insert(map, type, isl_map_dim(map, type), n);
}
-__isl_give isl_set *isl_set_add(__isl_take isl_set *set,
+__isl_give isl_set *isl_set_add_dims(__isl_take isl_set *set,
enum isl_dim_type type, unsigned n)
{
if (!set)
return NULL;
isl_assert(set->ctx, type != isl_dim_in, goto error);
- return (isl_set *)isl_map_add((isl_map *)set, type, n);
+ return (isl_set *)isl_map_add_dims((isl_map *)set, type, n);
error:
isl_set_free(set);
return NULL;
map1 = isl_map_read_from_str(ctx,
"[n] -> { [i] -> [j] : exists (a = [i/10] : i - 10a <= n ) }", -1);
- map1 = isl_map_add(map1, isl_dim_in, 1);
+ map1 = isl_map_add_dims(map1, isl_dim_in, 1);
map2 = isl_map_read_from_str(ctx,
"[n] -> { [i,k] -> [j] : exists (a = [i/10] : i - 10a <= n ) }", -1);
assert(isl_map_is_equal(map1, map2));
isl_map *app_1;
isl_map *app_2;
- map = isl_map_add(map, isl_dim_in, 1);
- map = isl_map_add(map, isl_dim_out, 1);
+ map = isl_map_add_dims(map, isl_dim_in, 1);
+ map = isl_map_add_dims(map, isl_dim_out, 1);
map = set_path_length(map, 1, 1);
app_1 = set_path_length(isl_map_copy(app), 1, 1);
isl_dim_free(dim);
map = isl_map_copy(map);
- map = isl_map_add(map, isl_dim_in, 1);
- map = isl_map_add(map, isl_dim_out, 1);
+ map = isl_map_add_dims(map, isl_dim_in, 1);
+ map = isl_map_add_dims(map, isl_dim_out, 1);
map = set_path_length(map, 1, 1);
return map;
}
app = isl_map_from_domain_and_range(domain, range);
- app = isl_map_add(app, isl_dim_in, 1);
- app = isl_map_add(app, isl_dim_out, 1);
+ app = isl_map_add_dims(app, isl_dim_in, 1);
+ app = isl_map_add_dims(app, isl_dim_out, 1);
path = construct_extended_path(isl_dim_copy(dim), map,
exact && *exact ? &project : NULL);
isl_map *map;
isl_map *app;
- dom = isl_set_add(dom, isl_dim_set, 1);
+ dom = isl_set_add_dims(dom, isl_dim_set, 1);
app = isl_map_from_domain_and_range(dom, isl_set_copy(dom));
map = isl_map_from_basic_map(isl_basic_map_copy(bmap));
path = construct_extended_path(dim, map, &project);
if (exact)
*exact = 1;
map = isl_map_project_out(map, isl_dim_out, 0, d);
- map = isl_map_add(map, isl_dim_out, 1);
+ map = isl_map_add_dims(map, isl_dim_out, 1);
return map;
}
map = map_power(map, exact, 0);
- map = isl_map_add(map, isl_dim_param, 1);
+ map = isl_map_add_dims(map, isl_dim_param, 1);
dim = isl_map_get_dim(map);
diff = equate_parameter_to_length(dim, param);
map = isl_map_intersect(map, diff);