From 16e9009e2b9033a92dc33d0e44698a2a5c14a0be Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Mon, 9 Jun 2014 10:55:49 +0200 Subject: [PATCH] doc: move isl_space operations to unary/binary operations sections This is a continuation of the change in 4d45b72 (doc: move isl_local_space operations to unary/binary operations sections, Tue Jan 28 14:36:14 2014 +0100). Signed-off-by: Sven Verdoolaege --- doc/user.pod | 153 ++++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 100 insertions(+), 53 deletions(-) diff --git a/doc/user.pod b/doc/user.pod index ad08d1ca..df730206 100644 --- a/doc/user.pod +++ b/doc/user.pod @@ -988,48 +988,8 @@ of L and the Cartesian product operations of L. Spaces can be created from other spaces -using the following functions. - - __isl_give isl_space *isl_space_domain(__isl_take isl_space *space); - __isl_give isl_space *isl_space_from_domain(__isl_take isl_space *space); - __isl_give isl_space *isl_space_range(__isl_take isl_space *space); - __isl_give isl_space *isl_space_from_range(__isl_take isl_space *space); - __isl_give isl_space *isl_space_domain_map( - __isl_take isl_space *space); - __isl_give isl_space *isl_space_range_map( - __isl_take isl_space *space); - __isl_give isl_space *isl_space_params( - __isl_take isl_space *space); - __isl_give isl_space *isl_space_set_from_params( - __isl_take isl_space *space); - __isl_give isl_space *isl_space_reverse(__isl_take isl_space *space); - __isl_give isl_space *isl_space_join(__isl_take isl_space *left, - __isl_take isl_space *right); - __isl_give isl_space *isl_space_align_params( - __isl_take isl_space *space1, __isl_take isl_space *space2) - __isl_give isl_space *isl_space_insert_dims(__isl_take isl_space *space, - enum isl_dim_type type, unsigned pos, unsigned n); - __isl_give isl_space *isl_space_add_dims(__isl_take isl_space *space, - enum isl_dim_type type, unsigned n); - __isl_give isl_space *isl_space_drop_dims(__isl_take isl_space *space, - enum isl_dim_type type, unsigned first, unsigned n); - __isl_give isl_space *isl_space_move_dims(__isl_take isl_space *space, - enum isl_dim_type dst_type, unsigned dst_pos, - enum isl_dim_type src_type, unsigned src_pos, - unsigned n); - __isl_give isl_space *isl_space_map_from_set( - __isl_take isl_space *space); - __isl_give isl_space *isl_space_map_from_domain_and_range( - __isl_take isl_space *domain, - __isl_take isl_space *range); - __isl_give isl_space *isl_space_zip(__isl_take isl_space *space); - __isl_give isl_space *isl_space_curry( - __isl_take isl_space *space); - __isl_give isl_space *isl_space_uncurry( - __isl_take isl_space *space); - -Note that if dimensions are added or removed from a space, then -the name and the internal structure are lost. +using the functions described in L +and L. =head2 Local Spaces @@ -1413,14 +1373,6 @@ space. __isl_give isl_map *isl_map_from_union_map( __isl_take isl_union_map *umap); -A zero-dimensional (basic) set can be constructed on a given parameter domain -using the following function. - - __isl_give isl_basic_set *isl_basic_set_from_params( - __isl_take isl_basic_set *bset); - __isl_give isl_set *isl_set_from_params( - __isl_take isl_set *set); - Sets and relations can be copied and freed again using the following functions. @@ -2287,6 +2239,11 @@ change over different versions of C. =item * Inverse map + #include + __isl_give isl_space *isl_space_reverse( + __isl_take isl_space *space); + + #include __isl_give isl_basic_map *isl_basic_map_reverse( __isl_take isl_basic_map *bmap); __isl_give isl_map *isl_map_reverse( @@ -2296,6 +2253,14 @@ change over different versions of C. =item * Projection + #include + __isl_give isl_space *isl_space_domain( + __isl_take isl_space *space); + __isl_give isl_space *isl_space_range( + __isl_take isl_space *space); + __isl_give isl_space *isl_space_params( + __isl_take isl_space *space); + #include __isl_give isl_local_space *isl_local_space_domain( __isl_take isl_local_space *ls); @@ -2346,6 +2311,12 @@ change over different versions of C. The function C can only project out parameters. + #include + __isl_give isl_space *isl_space_domain_map( + __isl_take isl_space *space); + __isl_give isl_space *isl_space_range_map( + __isl_take isl_space *space); + #include __isl_give isl_basic_map *isl_basic_map_domain_map( __isl_take isl_basic_map *bmap); @@ -2383,8 +2354,34 @@ that maps (a wrapped version of) the input relation to its domain or range. Eliminate the coefficients for the given dimensions from the constraints, without removing the dimensions. +=item * Constructing a set from a parameter domain + +A zero-dimensional space or (basic) set can be constructed +on a given parameter domain using the following functions. + + #include + __isl_give isl_space *isl_space_set_from_params( + __isl_take isl_space *space); + + #include + __isl_give isl_basic_set *isl_basic_set_from_params( + __isl_take isl_basic_set *bset); + __isl_give isl_set *isl_set_from_params( + __isl_take isl_set *set); + =item * Constructing a relation from a set + #include + __isl_give isl_space *isl_space_from_domain( + __isl_take isl_space *space); + __isl_give isl_space *isl_space_from_range( + __isl_take isl_space *space); + __isl_give isl_space *isl_space_map_from_set( + __isl_take isl_space *space); + __isl_give isl_space *isl_space_map_from_domain_and_range( + __isl_take isl_space *domain, + __isl_take isl_space *range); + #include __isl_give isl_local_space *isl_local_space_from_domain( __isl_take isl_local_space *ls); @@ -2935,6 +2932,11 @@ can be constructed using the following function. =item * Internal Product + #include + __isl_give isl_space *isl_space_zip( + __isl_take isl_space *space); + + #include __isl_give isl_basic_map *isl_basic_map_zip( __isl_take isl_basic_map *bmap); __isl_give isl_map *isl_map_zip( @@ -2947,6 +2949,13 @@ interchange the range of the domain with the domain of the range. =item * Currying + #include + __isl_give isl_space *isl_space_curry( + __isl_take isl_space *space); + __isl_give isl_space *isl_space_uncurry( + __isl_take isl_space *space); + + #include __isl_give isl_basic_map *isl_basic_map_curry( __isl_take isl_basic_map *bmap); __isl_give isl_basic_map *isl_basic_map_uncurry( @@ -2955,6 +2964,8 @@ interchange the range of the domain with the domain of the range. __isl_take isl_map *map); __isl_give isl_map *isl_map_uncurry( __isl_take isl_map *map); + + #include __isl_give isl_union_map *isl_union_map_curry( __isl_take isl_union_map *umap); __isl_give isl_union_map *isl_union_map_uncurry( @@ -2969,12 +2980,20 @@ The C functions perform the inverse operation. =item * Aligning parameters + #include + __isl_give isl_space *isl_space_align_params( + __isl_take isl_space *space1, + __isl_take isl_space *space2) + + #include __isl_give isl_basic_set *isl_basic_set_align_params( __isl_take isl_basic_set *bset, __isl_take isl_space *model); __isl_give isl_set *isl_set_align_params( __isl_take isl_set *set, __isl_take isl_space *model); + + #include __isl_give isl_basic_map *isl_basic_map_align_params( __isl_take isl_basic_map *bmap, __isl_take isl_space *model); @@ -2989,6 +3008,22 @@ All parameters need to be named. =item * Dimension manipulation + #include + __isl_give isl_space *isl_space_add_dims( + __isl_take isl_space *space, + enum isl_dim_type type, unsigned n); + __isl_give isl_space *isl_space_insert_dims( + __isl_take isl_space *space, + enum isl_dim_type type, unsigned pos, unsigned n); + __isl_give isl_space *isl_space_drop_dims( + __isl_take isl_space *space, + enum isl_dim_type type, unsigned first, unsigned n); + __isl_give isl_space *isl_space_move_dims( + __isl_take isl_space *space, + enum isl_dim_type dst_type, unsigned dst_pos, + enum isl_dim_type src_type, unsigned src_pos, + unsigned n); + #include __isl_give isl_local_space *isl_local_space_add_dims( __isl_take isl_local_space *ls, @@ -3191,15 +3226,25 @@ at least one element and all elements need to live in the same space. =item * Application + #include + __isl_give isl_space *isl_space_join( + __isl_take isl_space *left, + __isl_take isl_space *right); + + #include __isl_give isl_basic_set *isl_basic_set_apply( __isl_take isl_basic_set *bset, __isl_take isl_basic_map *bmap); __isl_give isl_set *isl_set_apply( __isl_take isl_set *set, __isl_take isl_map *map); + + #include __isl_give isl_union_set *isl_union_set_apply( __isl_take isl_union_set *uset, __isl_take isl_union_map *umap); + + #include __isl_give isl_basic_map *isl_basic_map_apply_domain( __isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2); @@ -3209,12 +3254,14 @@ at least one element and all elements need to live in the same space. __isl_give isl_map *isl_map_apply_domain( __isl_take isl_map *map1, __isl_take isl_map *map2); - __isl_give isl_union_map *isl_union_map_apply_domain( - __isl_take isl_union_map *umap1, - __isl_take isl_union_map *umap2); __isl_give isl_map *isl_map_apply_range( __isl_take isl_map *map1, __isl_take isl_map *map2); + + #include + __isl_give isl_union_map *isl_union_map_apply_domain( + __isl_take isl_union_map *umap1, + __isl_take isl_union_map *umap2); __isl_give isl_union_map *isl_union_map_apply_range( __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2); -- 2.11.4.GIT