From 80f224c40c6bffcb80eb2cfb03ad1d38e978fedd Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Wed, 19 Jan 2011 21:26:28 +0100 Subject: [PATCH] doc: document product functions Signed-off-by: Sven Verdoolaege --- doc/user.pod | 28 ++++++++++++++++++++++++++++ include/isl/map.h | 3 ++- include/isl/set.h | 3 ++- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/doc/user.pod b/doc/user.pod index a74a1b2..68088fa 100644 --- a/doc/user.pod +++ b/doc/user.pod @@ -1591,6 +1591,34 @@ the same (number of) parameters. __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2); +=item * Cartesian Product + + __isl_give isl_set *isl_set_product( + __isl_take isl_set *set1, + __isl_take isl_set *set2); + __isl_give isl_union_set *isl_union_set_product( + __isl_take isl_union_set *uset1, + __isl_take isl_union_set *uset2); + __isl_give isl_map *isl_map_product( + __isl_take isl_map *map1, + __isl_take isl_map *map2); + __isl_give isl_union_map *isl_union_map_product( + __isl_take isl_union_map *umap1, + __isl_take isl_union_map *umap2); + +The above functions compute the cross product of the given +sets or relations. The domains and ranges of the results +are wrapped maps between domains and ranges of the inputs. +To obtain a ``flat'' product, use the following functions +instead. + + __isl_give isl_set *isl_set_flat_product( + __isl_take isl_set *set1, + __isl_take isl_set *set2); + __isl_give isl_map *isl_map_flat_product( + __isl_take isl_map *map1, + __isl_take isl_map *map2); + =item * Simplification __isl_give isl_basic_set *isl_basic_set_gist( diff --git a/include/isl/map.h b/include/isl/map.h index 06c9af9..dc19591 100644 --- a/include/isl/map.h +++ b/include/isl/map.h @@ -271,7 +271,8 @@ __isl_give isl_map *isl_map_apply_domain( __isl_give isl_map *isl_map_apply_range( __isl_take isl_map *map1, __isl_take isl_map *map2); -struct isl_map *isl_map_product(struct isl_map *map1, struct isl_map *map2); +__isl_give isl_map *isl_map_product(__isl_take isl_map *map1, + __isl_take isl_map *map2); __isl_give isl_map *isl_map_flat_product(__isl_take isl_map *map1, __isl_take isl_map *map2); __isl_give isl_map *isl_map_intersect(__isl_take isl_map *map1, diff --git a/include/isl/set.h b/include/isl/set.h index 1cc9c92..8382362 100644 --- a/include/isl/set.h +++ b/include/isl/set.h @@ -188,7 +188,8 @@ struct isl_set *isl_set_union_disjoint( __isl_give isl_set *isl_set_union( __isl_take isl_set *set1, __isl_take isl_set *set2); -struct isl_set *isl_set_product(struct isl_set *set1, struct isl_set *set2); +__isl_give isl_set *isl_set_product(__isl_take isl_set *set1, + __isl_take isl_set *set2); __isl_give isl_set *isl_set_flat_product(__isl_take isl_set *set1, __isl_take isl_set *set2); __isl_give isl_set *isl_set_intersect( -- 2.7.4