From 05f3f66572b9aa548e03a39deaa3000f9cef563a Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Wed, 26 Jan 2011 19:23:39 +0100 Subject: [PATCH] merge isl_basic_set/isl_basic_map and isl_set/isl_map Internally, these are essentially the same. We do keep the distinction in the external interface. Signed-off-by: Sven Verdoolaege --- basis_reduction_tab.c | 1 + basis_reduction_templ.c | 2 +- include/isl/map.h | 4 ++++ isl_affine_hull.c | 2 +- isl_bernstein.c | 2 +- isl_bound.c | 2 +- isl_constraint.c | 2 +- isl_convex_hull.c | 2 +- isl_div.c | 2 +- isl_factorization.c | 2 +- isl_fold.c | 2 +- isl_ilp.c | 2 +- isl_input.c | 2 +- isl_lp.c | 2 +- isl_map.c | 2 +- isl_map_piplib.c | 2 +- isl_map_private.h | 56 ++++++------------------------------------------ isl_map_simplify.c | 2 +- isl_map_subtract.c | 2 +- isl_morph.c | 2 +- isl_output.c | 2 +- isl_point.c | 2 +- isl_polynomial.c | 2 +- isl_range.c | 9 +++++--- isl_sample.c | 2 +- isl_scan.c | 2 +- isl_test.c | 2 +- isl_transitive_closure.c | 2 +- isl_union_map.c | 2 +- isl_vertices.c | 2 +- pip.c | 2 +- polyhedron_sample.c | 2 +- polytope_scan.c | 2 +- 33 files changed, 47 insertions(+), 81 deletions(-) diff --git a/basis_reduction_tab.c b/basis_reduction_tab.c index 4c3f99f7..af545693 100644 --- a/basis_reduction_tab.c +++ b/basis_reduction_tab.c @@ -8,6 +8,7 @@ */ #include +#include #include #include "isl_tab.h" diff --git a/basis_reduction_templ.c b/basis_reduction_templ.c index 81b86f0b..4f6145d4 100644 --- a/basis_reduction_templ.c +++ b/basis_reduction_templ.c @@ -11,8 +11,8 @@ */ #include +#include #include "isl_basis_reduction.h" -#include "isl_map_private.h" static void save_alpha(GBR_LP *lp, int first, int n, GBR_type *alpha) { diff --git a/include/isl/map.h b/include/isl/map.h index f9b67869..e3e8a289 100644 --- a/include/isl/map.h +++ b/include/isl/map.h @@ -40,12 +40,16 @@ extern "C" { struct isl_basic_map; typedef struct isl_basic_map isl_basic_map; +#ifndef isl_basic_set struct isl_basic_set; typedef struct isl_basic_set isl_basic_set; +#endif struct isl_map; typedef struct isl_map isl_map; +#ifndef isl_set struct isl_set; typedef struct isl_set isl_set; +#endif unsigned isl_basic_map_n_in(const struct isl_basic_map *bmap); unsigned isl_basic_map_n_out(const struct isl_basic_map *bmap); diff --git a/isl_affine_hull.c b/isl_affine_hull.c index 9f53a074..0707bc1c 100644 --- a/isl_affine_hull.c +++ b/isl_affine_hull.c @@ -7,12 +7,12 @@ * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium */ +#include #include #include #include #include #include -#include "isl_map_private.h" #include "isl_equalities.h" #include "isl_sample.h" #include "isl_tab.h" diff --git a/isl_bernstein.c b/isl_bernstein.c index 38bf9163..3ba18b49 100644 --- a/isl_bernstein.c +++ b/isl_bernstein.c @@ -13,6 +13,7 @@ * ZAC des vignes, 4 rue Jacques Monod, 91893 Orsay, France */ +#include #include #include #include @@ -20,7 +21,6 @@ #include #include #include -#include struct bernstein_data { enum isl_fold type; diff --git a/isl_bound.c b/isl_bound.c index 9783604b..9be02d8c 100644 --- a/isl_bound.c +++ b/isl_bound.c @@ -8,11 +8,11 @@ * 91893 Orsay, France */ +#include #include #include #include #include -#include /* Compute a bound on the polynomial defined over the parametric polytope * using either range propagation or bernstein expansion and diff --git a/isl_constraint.c b/isl_constraint.c index 1fa0680c..9a8050c2 100644 --- a/isl_constraint.c +++ b/isl_constraint.c @@ -10,10 +10,10 @@ * ZAC des vignes, 4 rue Jacques Monod, 91893 Orsay, France */ +#include #include #include #include -#include "isl_map_private.h" static unsigned n(struct isl_constraint *c, enum isl_dim_type type) { diff --git a/isl_convex_hull.c b/isl_convex_hull.c index 260bbd4d..4e07acf7 100644 --- a/isl_convex_hull.c +++ b/isl_convex_hull.c @@ -7,9 +7,9 @@ * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium */ +#include #include #include -#include "isl_map_private.h" #include #include #include diff --git a/isl_div.c b/isl_div.c index a259772f..4694778c 100644 --- a/isl_div.c +++ b/isl_div.c @@ -7,10 +7,10 @@ * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium */ +#include #include #include #include -#include "isl_map_private.h" #include static unsigned n(struct isl_div *d, enum isl_dim_type type) diff --git a/isl_factorization.c b/isl_factorization.c index 8792e228..6acfd73d 100644 --- a/isl_factorization.c +++ b/isl_factorization.c @@ -13,10 +13,10 @@ * ZAC des vignes, 4 rue Jacques Monod, 91893 Orsay, France */ +#include #include #include #include -#include static __isl_give isl_factorizer *isl_factorizer_alloc( __isl_take isl_morph *morph, int n_group) diff --git a/isl_fold.c b/isl_fold.c index 5b846e1d..edd3817c 100644 --- a/isl_fold.c +++ b/isl_fold.c @@ -8,11 +8,11 @@ * 91893 Orsay, France */ +#include #include #include #include #include -#include #include #include #include diff --git a/isl_ilp.c b/isl_ilp.c index f3a79282..83c313ed 100644 --- a/isl_ilp.c +++ b/isl_ilp.c @@ -7,8 +7,8 @@ * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium */ +#include #include -#include "isl_map_private.h" #include "isl_sample.h" #include #include "isl_equalities.h" diff --git a/isl_input.c b/isl_input.c index d6c3f8eb..247c00a3 100644 --- a/isl_input.c +++ b/isl_input.c @@ -14,11 +14,11 @@ #include #include #include +#include #include #include #include #include -#include "isl_map_private.h" #include #include "isl_polynomial_private.h" #include diff --git a/isl_lp.c b/isl_lp.c index 932affc0..0e6a3455 100644 --- a/isl_lp.c +++ b/isl_lp.c @@ -7,12 +7,12 @@ * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium */ +#include #include #include #include "isl_lp_piplib.h" #include #include "isl_tab.h" -#include "isl_map_private.h" enum isl_lp_result isl_tab_solve_lp(struct isl_basic_map *bmap, int maximize, isl_int *f, isl_int denom, isl_int *opt, diff --git a/isl_map.c b/isl_map.c index c1e1f448..5da0482b 100644 --- a/isl_map.c +++ b/isl_map.c @@ -12,6 +12,7 @@ #include #include +#include #include #include #include "isl_dim_private.h" @@ -21,7 +22,6 @@ #include #include #include -#include "isl_map_private.h" #include "isl_map_piplib.h" #include #include "isl_sample.h" diff --git a/isl_map_piplib.c b/isl_map_piplib.c index a7019b59..e39ee9f6 100644 --- a/isl_map_piplib.c +++ b/isl_map_piplib.c @@ -7,13 +7,13 @@ * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium */ +#include #include #include #include #include #include "isl_piplib.h" #include "isl_map_piplib.h" -#include "isl_map_private.h" static void copy_values_from(isl_int *dst, Entier *src, unsigned n) { diff --git a/isl_map_private.h b/isl_map_private.h index 526dbca8..8eb4d9f5 100644 --- a/isl_map_private.h +++ b/isl_map_private.h @@ -10,6 +10,8 @@ #ifndef ISL_MAP_PRIVATE_H #define ISL_MAP_PRIVATE_H +#define isl_basic_set isl_basic_map +#define isl_set isl_map #include #include #include @@ -17,6 +19,8 @@ /* A "basic map" is a relation between two sets of variables, * called the "in" and "out" variables. + * A "basic set" is a basic map with a zero-dimensional + * domain. * * It is implemented as a set with two extra fields: * n_in is the number of in variables @@ -33,35 +37,6 @@ struct isl_basic_map { #define ISL_BASIC_MAP_NORMALIZED (1 << 5) #define ISL_BASIC_MAP_NORMALIZED_DIVS (1 << 6) #define ISL_BASIC_MAP_ALL_EQUALITIES (1 << 7) - unsigned flags; - - struct isl_ctx *ctx; - - struct isl_dim *dim; - unsigned extra; - - unsigned n_eq; - unsigned n_ineq; - - size_t c_size; - isl_int **eq; - isl_int **ineq; - - unsigned n_div; - - isl_int **div; - - struct isl_vec *sample; - - struct isl_blk block; - struct isl_blk block2; -}; - -/* A "basic set" is a basic map with a zero-dimensional - * domain. - */ -struct isl_basic_set { - int ref; #define ISL_BASIC_SET_FINAL (1 << 0) #define ISL_BASIC_SET_EMPTY (1 << 1) #define ISL_BASIC_SET_NO_IMPLICIT (1 << 2) @@ -94,7 +69,8 @@ struct isl_basic_set { struct isl_blk block2; }; -/* A "map" is a (disjoint) union of basic maps. +/* A "map" is a (possibly disjoint) union of basic maps. + * A "set" is a (possibly disjoint) union of basic sets. * * Currently, the isl_set structure is identical to the isl_map structure * and the library depends on this correspondence internally. @@ -104,24 +80,6 @@ struct isl_map { int ref; #define ISL_MAP_DISJOINT (1 << 0) #define ISL_MAP_NORMALIZED (1 << 1) - unsigned flags; - - struct isl_ctx *ctx; - - struct isl_dim *dim; - - int n; - - size_t size; - struct isl_basic_map *p[1]; -}; - -/* A "set" is a (possibly disjoint) union of basic sets. - * - * See the documentation of isl_map. - */ -struct isl_set { - int ref; #define ISL_SET_DISJOINT (1 << 0) #define ISL_SET_NORMALIZED (1 << 1) unsigned flags; @@ -133,7 +91,7 @@ struct isl_set { int n; size_t size; - struct isl_basic_set *p[1]; + struct isl_basic_map *p[1]; }; __isl_give isl_map *isl_map_realign(__isl_take isl_map *map, diff --git a/isl_map_simplify.c b/isl_map_simplify.c index 03bdc732..302c1234 100644 --- a/isl_map_simplify.c +++ b/isl_map_simplify.c @@ -7,9 +7,9 @@ * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium */ +#include #include "isl_equalities.h" #include -#include "isl_map_private.h" #include #include "isl_tab.h" #include diff --git a/isl_map_subtract.c b/isl_map_subtract.c index 452af60d..ecf3e4be 100644 --- a/isl_map_subtract.c +++ b/isl_map_subtract.c @@ -7,10 +7,10 @@ * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium */ +#include #include #include #include -#include "isl_map_private.h" #include "isl_tab.h" #include diff --git a/isl_morph.c b/isl_morph.c index d96de660..5232ae66 100644 --- a/isl_morph.c +++ b/isl_morph.c @@ -8,9 +8,9 @@ * 91893 Orsay, France */ +#include #include #include -#include #include #include #include diff --git a/isl_output.c b/isl_output.c index 7df6bcbd..f77d03d7 100644 --- a/isl_output.c +++ b/isl_output.c @@ -12,12 +12,12 @@ #include #include +#include #include #include #include #include #include -#include #include #include diff --git a/isl_point.c b/isl_point.c index 152e9b0d..92b0618a 100644 --- a/isl_point.c +++ b/isl_point.c @@ -1,6 +1,6 @@ +#include #include #include -#include #include #include #include diff --git a/isl_polynomial.c b/isl_polynomial.c index 74f7bdf9..dd54e37d 100644 --- a/isl_polynomial.c +++ b/isl_polynomial.c @@ -9,6 +9,7 @@ */ #include +#include #include #include #include @@ -16,7 +17,6 @@ #include #include #include -#include #include #include diff --git a/isl_range.c b/isl_range.c index a98c7c4c..359ae28d 100644 --- a/isl_range.c +++ b/isl_range.c @@ -1,6 +1,5 @@ #include #include -#include #include #include #include @@ -351,6 +350,7 @@ static int propagate_on_bound_pair(__isl_take isl_constraint *lower, static int propagate_on_domain(__isl_take isl_basic_set *bset, __isl_take isl_qpolynomial *poly, struct range_data *data) { + isl_ctx *ctx; isl_qpolynomial *save_poly = data->poly; int save_monotonicity = data->monotonicity; unsigned d; @@ -358,8 +358,9 @@ static int propagate_on_domain(__isl_take isl_basic_set *bset, if (!bset || !poly) goto error; + ctx = isl_basic_set_get_ctx(bset); d = isl_basic_set_dim(bset, isl_dim_set); - isl_assert(bset->ctx, d >= 1, goto error); + isl_assert(ctx, d >= 1, goto error); if (isl_qpolynomial_is_cst(poly, NULL, NULL)) { bset = isl_basic_set_project_out(bset, isl_dim_set, 0, d); @@ -396,13 +397,15 @@ error: static int basic_guarded_poly_bound(__isl_take isl_basic_set *bset, void *user) { struct range_data *data = (struct range_data *)user; + isl_ctx *ctx; unsigned nparam = isl_basic_set_dim(bset, isl_dim_param); unsigned dim = isl_basic_set_dim(bset, isl_dim_set); int r; data->signs = NULL; - data->signs = isl_alloc_array(bset->ctx, int, + ctx = isl_basic_set_get_ctx(bset); + data->signs = isl_alloc_array(ctx, int, isl_basic_set_dim(bset, isl_dim_all)); if (isl_basic_set_dims_get_sign(bset, isl_dim_set, 0, dim, diff --git a/isl_sample.c b/isl_sample.c index e018bc78..812bb10b 100644 --- a/isl_sample.c +++ b/isl_sample.c @@ -7,12 +7,12 @@ * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium */ +#include #include "isl_sample.h" #include "isl_sample_piplib.h" #include #include #include -#include "isl_map_private.h" #include "isl_equalities.h" #include "isl_tab.h" #include "isl_basis_reduction.h" diff --git a/isl_scan.c b/isl_scan.c index 76ab5451..f32f5e63 100644 --- a/isl_scan.c +++ b/isl_scan.c @@ -7,11 +7,11 @@ * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium */ +#include #include "isl_basis_reduction.h" #include "isl_scan.h" #include #include "isl_tab.h" -#include struct isl_counter { struct isl_scan_callback callback; diff --git a/isl_test.c b/isl_test.c index 90911b08..0050848e 100644 --- a/isl_test.c +++ b/isl_test.c @@ -10,13 +10,13 @@ #include #include #include +#include #include #include #include #include #include #include -#include #include static char *srcdir; diff --git a/isl_transitive_closure.c b/isl_transitive_closure.c index 7eec76b2..1452fa99 100644 --- a/isl_transitive_closure.c +++ b/isl_transitive_closure.c @@ -8,8 +8,8 @@ * 91893 Orsay, France */ +#include #include -#include "isl_map_private.h" #include #include #include diff --git a/isl_union_map.c b/isl_union_map.c index 667fa62c..e0ae1deb 100644 --- a/isl_union_map.c +++ b/isl_union_map.c @@ -8,12 +8,12 @@ * 91893 Orsay, France */ +#include #include #include #include #include #include -#include #include #include diff --git a/isl_vertices.c b/isl_vertices.c index e87e9657..4641eb0e 100644 --- a/isl_vertices.c +++ b/isl_vertices.c @@ -8,10 +8,10 @@ * 91893 Orsay, France */ +#include #include #include #include -#include #include #include #include diff --git a/pip.c b/pip.c index 7f84327f..eed7a3c2 100644 --- a/pip.c +++ b/pip.c @@ -9,9 +9,9 @@ #include #include +#include #include #include "isl_tab.h" -#include "isl_map_private.h" #include "isl_sample.h" #include "isl_scan.h" #include diff --git a/polyhedron_sample.c b/polyhedron_sample.c index 8716513a..05b343b1 100644 --- a/polyhedron_sample.c +++ b/polyhedron_sample.c @@ -8,9 +8,9 @@ */ #include +#include #include "isl_sample.h" #include -#include "isl_map_private.h" int main(int argc, char **argv) { diff --git a/polytope_scan.c b/polytope_scan.c index ac87655a..2ccee4fb 100644 --- a/polytope_scan.c +++ b/polytope_scan.c @@ -8,11 +8,11 @@ */ #include +#include #include "isl_equalities.h" #include #include "isl_scan.h" #include -#include /* The input of this program is the same as that of the "polytope_scan" * program from the barvinok distribution. -- 2.11.4.GIT