X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=isl_map_private.h;h=93010dfcd7764eba153006a2f401da71f4f3ba1f;hb=63fb8a7f484648c3caa25351c8c94ac2395ec563;hp=031ba62e8f9fa39264ddd275bf792bccb70bc571;hpb=26c2b299ca995f6ecbb1b1701a6edd4c2b3da1d7;p=platform%2Fupstream%2Fisl.git diff --git a/isl_map_private.h b/isl_map_private.h index 031ba62..93010df 100644 --- a/isl_map_private.h +++ b/isl_map_private.h @@ -1,7 +1,7 @@ /* * Copyright 2008-2009 Katholieke Universiteit Leuven * - * Use of this software is governed by the GNU LGPLv2.1 license + * Use of this software is governed by the MIT license * * Written by Sven Verdoolaege, K.U.Leuven, Departement * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium @@ -12,6 +12,11 @@ #define isl_basic_set isl_basic_map #define isl_set isl_map +#define isl_basic_set_list isl_basic_map_list +#define isl_set_list isl_map_list +#include +ISL_DECLARE_LIST(basic_map) +ISL_DECLARE_LIST(map) #include #include #include @@ -49,7 +54,7 @@ struct isl_basic_map { struct isl_ctx *ctx; - struct isl_dim *dim; + isl_space *dim; unsigned extra; unsigned n_eq; @@ -69,6 +74,11 @@ struct isl_basic_map { struct isl_blk block2; }; +#undef EL +#define EL isl_basic_set + +#include + /* A "map" is a (possibly disjoint) union of basic maps. * A "set" is a (possibly disjoint) union of basic sets. * @@ -86,7 +96,7 @@ struct isl_map { struct isl_ctx *ctx; - struct isl_dim *dim; + isl_space *dim; int n; @@ -94,6 +104,11 @@ struct isl_map { struct isl_basic_map *p[1]; }; +#undef EL +#define EL isl_set + +#include + __isl_give isl_map *isl_map_realign(__isl_take isl_map *map, __isl_take isl_reordering *r); __isl_give isl_set *isl_set_realign(__isl_take isl_set *set, @@ -102,27 +117,31 @@ __isl_give isl_set *isl_set_realign(__isl_take isl_set *set, __isl_give isl_map *isl_map_reset(__isl_take isl_map *map, enum isl_dim_type type); -__isl_give isl_basic_set *isl_basic_set_reset_dim( - __isl_take isl_basic_set *bset, __isl_take isl_dim *dim); -__isl_give isl_basic_map *isl_basic_map_reset_dim( - __isl_take isl_basic_map *bmap, __isl_take isl_dim *dim); -__isl_give isl_map *isl_map_reset_dim(__isl_take isl_map *map, - __isl_take isl_dim *dim); +__isl_give isl_basic_set *isl_basic_set_reset_space( + __isl_take isl_basic_set *bset, __isl_take isl_space *dim); +__isl_give isl_basic_map *isl_basic_map_reset_space( + __isl_take isl_basic_map *bmap, __isl_take isl_space *dim); +__isl_give isl_map *isl_map_reset_space(__isl_take isl_map *map, + __isl_take isl_space *dim); unsigned isl_basic_map_offset(struct isl_basic_map *bmap, enum isl_dim_type type); +unsigned isl_basic_set_offset(struct isl_basic_set *bset, + enum isl_dim_type type); +int isl_basic_map_may_be_set(__isl_keep isl_basic_map *bmap); +int isl_map_may_be_set(__isl_keep isl_map *map); int isl_map_compatible_domain(struct isl_map *map, struct isl_set *set); int isl_basic_map_compatible_domain(struct isl_basic_map *bmap, struct isl_basic_set *bset); int isl_basic_map_compatible_range(struct isl_basic_map *bmap, struct isl_basic_set *bset); -struct isl_basic_map *isl_basic_map_extend_dim(struct isl_basic_map *base, - struct isl_dim *dim, unsigned extra, +struct isl_basic_map *isl_basic_map_extend_space(struct isl_basic_map *base, + __isl_take isl_space *dim, unsigned extra, unsigned n_eq, unsigned n_ineq); -struct isl_basic_set *isl_basic_set_extend_dim(struct isl_basic_set *base, - struct isl_dim *dim, unsigned extra, +struct isl_basic_set *isl_basic_set_extend_space(struct isl_basic_set *base, + __isl_take isl_space *dim, unsigned extra, unsigned n_eq, unsigned n_ineq); struct isl_basic_set *isl_basic_set_add_constraints(struct isl_basic_set *bset1, struct isl_basic_set *bset2, unsigned pos); @@ -133,12 +152,14 @@ struct isl_set *isl_set_grow(struct isl_set *set, int n); int isl_basic_set_contains(struct isl_basic_set *bset, struct isl_vec *vec); int isl_basic_map_contains(struct isl_basic_map *bmap, struct isl_vec *vec); -struct isl_basic_set *isl_basic_set_alloc_dim(struct isl_dim *dim, +__isl_give isl_basic_set *isl_basic_set_alloc_space(__isl_take isl_space *dim, unsigned extra, unsigned n_eq, unsigned n_ineq); -struct isl_set *isl_set_alloc_dim(struct isl_dim *dim, int n, unsigned flags); -struct isl_basic_map *isl_basic_map_alloc_dim(struct isl_dim *dim, +__isl_give isl_set *isl_set_alloc_space(__isl_take isl_space *dim, int n, + unsigned flags); +__isl_give isl_basic_map *isl_basic_map_alloc_space(__isl_take isl_space *dim, unsigned extra, unsigned n_eq, unsigned n_ineq); -struct isl_map *isl_map_alloc_dim(struct isl_dim *dim, int n, unsigned flags); +__isl_give isl_map *isl_map_alloc_space(__isl_take isl_space *dim, int n, + unsigned flags); unsigned isl_basic_map_total_dim(const struct isl_basic_map *bmap); @@ -186,17 +207,20 @@ struct isl_basic_map *isl_basic_map_align_divs( struct isl_basic_map *dst, struct isl_basic_map *src); struct isl_basic_set *isl_basic_set_align_divs( struct isl_basic_set *dst, struct isl_basic_set *src); +__isl_give isl_basic_map *isl_basic_map_sort_divs( + __isl_take isl_basic_map *bmap); +__isl_give isl_map *isl_map_sort_divs(__isl_take isl_map *map); struct isl_basic_map *isl_basic_map_gauss( struct isl_basic_map *bmap, int *progress); struct isl_basic_set *isl_basic_set_gauss( struct isl_basic_set *bset, int *progress); __isl_give isl_basic_set *isl_basic_set_sort_constraints( __isl_take isl_basic_set *bset); -int isl_basic_map_fast_cmp(const __isl_keep isl_basic_map *bmap1, +int isl_basic_map_plain_cmp(const __isl_keep isl_basic_map *bmap1, const __isl_keep isl_basic_map *bmap2); -int isl_basic_set_fast_is_equal(__isl_keep isl_basic_set *bset1, +int isl_basic_set_plain_is_equal(__isl_keep isl_basic_set *bset1, __isl_keep isl_basic_set *bset2); -int isl_basic_map_fast_is_equal(__isl_keep isl_basic_map *bmap1, +int isl_basic_map_plain_is_equal(__isl_keep isl_basic_map *bmap1, __isl_keep isl_basic_map *bmap2); struct isl_basic_map *isl_basic_map_normalize_constraints( struct isl_basic_map *bmap); @@ -258,8 +282,13 @@ struct isl_basic_set *isl_basic_set_recession_cone(struct isl_basic_set *bset); struct isl_basic_set *isl_basic_set_lineality_space(struct isl_basic_set *bset); struct isl_basic_set *isl_basic_set_set_rational(struct isl_basic_set *bset); +__isl_give isl_set *isl_set_set_rational(__isl_take isl_set *set); __isl_give isl_basic_map *isl_basic_map_set_rational( __isl_take isl_basic_map *bmap); +__isl_give isl_map *isl_map_set_rational(__isl_take isl_map *map); + +int isl_map_has_rational(__isl_keep isl_map *map); +int isl_set_has_rational(__isl_keep isl_set *set); struct isl_mat; @@ -267,6 +296,10 @@ struct isl_basic_set *isl_basic_set_preimage(struct isl_basic_set *bset, struct isl_mat *mat); struct isl_set *isl_set_preimage(struct isl_set *set, struct isl_mat *mat); +__isl_give isl_basic_set *isl_basic_set_transform_dims( + __isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned first, + __isl_take isl_mat *trans); + isl_int *isl_set_wrap_facet(__isl_keep isl_set *set, isl_int *facet, isl_int *ridge); @@ -286,5 +319,49 @@ int isl_basic_set_add_div_constraints_var(__isl_keep isl_basic_set *bset, unsigned pos, isl_int *div); int isl_basic_map_is_div_constraint(__isl_keep isl_basic_map *bmap, isl_int *constraint, unsigned div); +int isl_basic_set_is_div_constraint(__isl_keep isl_basic_set *bset, + isl_int *constraint, unsigned div); + +__isl_give isl_basic_set *isl_basic_set_from_local_space( + __isl_take isl_local_space *ls); +__isl_give isl_basic_map *isl_basic_map_from_local_space( + __isl_take isl_local_space *ls); +__isl_give isl_basic_set *isl_basic_set_expand_divs( + __isl_take isl_basic_set *bset, __isl_take isl_mat *div, int *exp); + +int isl_basic_map_divs_known(__isl_keep isl_basic_map *bmap); +__isl_give isl_mat *isl_basic_map_get_divs(__isl_keep isl_basic_map *bmap); + +__isl_give isl_map *isl_map_inline_foreach_basic_map(__isl_take isl_map *map, + __isl_give isl_basic_map *(*fn)(__isl_take isl_basic_map *bmap)); + +__isl_give isl_map *isl_map_align_params_map_map_and( + __isl_take isl_map *map1, __isl_take isl_map *map2, + __isl_give isl_map *(*fn)(__isl_take isl_map *map1, + __isl_take isl_map *map2)); +int isl_map_align_params_map_map_and_test(__isl_keep isl_map *map1, + __isl_keep isl_map *map2, + int (*fn)(__isl_keep isl_map *map1, __isl_keep isl_map *map2)); + +int isl_basic_map_foreach_lexopt(__isl_keep isl_basic_map *bmap, int max, + int (*fn)(__isl_take isl_basic_set *dom, __isl_take isl_aff_list *list, + void *user), + void *user); +int isl_basic_set_foreach_lexopt(__isl_keep isl_basic_set *bset, int max, + int (*fn)(__isl_take isl_basic_set *dom, __isl_take isl_aff_list *list, + void *user), + void *user); + +__isl_give isl_set *isl_set_substitute(__isl_take isl_set *set, + enum isl_dim_type type, unsigned pos, __isl_keep isl_aff *subs); + +__isl_give isl_set *isl_set_gist_params_basic_set(__isl_take isl_set *set, + __isl_take isl_basic_set *context); + +int isl_map_compatible_range(__isl_keep isl_map *map, __isl_keep isl_set *set); + +int isl_basic_map_plain_is_single_valued(__isl_keep isl_basic_map *bmap); + +int isl_map_is_set(__isl_keep isl_map *map); #endif