Sven Verdoolaege [Tue, 10 Feb 2009 16:30:43 +0000 (17:30 +0100)]
add isl_basic_map_neg
Sven Verdoolaege [Tue, 10 Feb 2009 15:50:30 +0000 (16:50 +0100)]
add isl_basic_map_sum
Sven Verdoolaege [Tue, 10 Feb 2009 14:49:03 +0000 (15:49 +0100)]
add isl_map_fix_si, a generalization of isl_basic_map_fix_input_si
Sven Verdoolaege [Wed, 4 Feb 2009 15:33:45 +0000 (16:33 +0100)]
isl_map_simplify.c: remove_duplicate_divs: remove divs from last to first
Sven Verdoolaege [Wed, 4 Feb 2009 15:00:08 +0000 (16:00 +0100)]
isl_basic_map_gauss: be careful not to introduce circular div definitions
Sven Verdoolaege [Wed, 4 Feb 2009 14:47:14 +0000 (15:47 +0100)]
add functions for setting isl_divs
Sven Verdoolaege [Tue, 3 Feb 2009 20:41:40 +0000 (21:41 +0100)]
isl_map_from_quast: don't throw away any bottom leaves
Before, we would perform an "optimization" that would simply
discard any leaves with a bottom when we hadn't seen any leaves
with a solution yet, the intention being that we don't need
to collect bottom leaves if there are no solutions.
However, the bottom leaves may precede solution leaves and
then we would erroneously discard them.
Sven Verdoolaege [Tue, 27 Jan 2009 09:48:32 +0000 (10:48 +0100)]
isl_map_simplify.c: normalize_divs: fix use of variable compression
When there is a div that depends on another div, then we need
to be careful not to look for the other div in the variable
compression matrix.
Sven Verdoolaege [Tue, 27 Jan 2009 08:52:04 +0000 (09:52 +0100)]
isl_mat_variable_compression: fix use after free
Sven Verdoolaege [Mon, 26 Jan 2009 22:38:49 +0000 (23:38 +0100)]
isl_map_simplify.c: normalize_divs: ensure enough existentials are available
Before, we would assume that normalizing the divs could never
increase the number of existential variables, but as shown by
the added test case, this isn't always true.
Sven Verdoolaege [Thu, 22 Jan 2009 20:46:36 +0000 (21:46 +0100)]
isl_hash_table_remove: update number of entries
Otherwise, removing an element and later adding it back again
would increase the number of elements in the table, quickly
leading to overflows.
Sven Verdoolaege [Thu, 22 Jan 2009 14:10:28 +0000 (15:10 +0100)]
isl_map_simple_hull: plug memory leak
The leak was introduced in
4433b45d31f7f5461ee372a8a4aa2d3a955f96b5
(isl_map_underlying_set: align divs before calling this function).
Sven Verdoolaege [Fri, 9 Jan 2009 11:43:30 +0000 (12:43 +0100)]
add std::ostream &operator<<(std::ostream &os, isl_int i) (for C++ builds)
Sven Verdoolaege [Wed, 31 Dec 2008 14:49:04 +0000 (15:49 +0100)]
normalize divs involved in equalities
Sven Verdoolaege [Sat, 3 Jan 2009 10:21:23 +0000 (11:21 +0100)]
isl_map_underlying_set: drop names from dimesion in underlying set
When applying isl_mat transforamtions on sets, we currently
assume that these sets have no names for the dimensions.
Sven Verdoolaege [Fri, 2 Jan 2009 21:32:21 +0000 (22:32 +0100)]
add isl_mat_parameter_compression
Sven Verdoolaege [Fri, 2 Jan 2009 21:29:01 +0000 (22:29 +0100)]
isl_equalities.c: extract and export isl_mat_variable_compression
Sven Verdoolaege [Fri, 2 Jan 2009 21:25:18 +0000 (22:25 +0100)]
add isl_basic_set_is_empty
Sven Verdoolaege [Fri, 2 Jan 2009 21:22:48 +0000 (22:22 +0100)]
add isl_mat_right_kernel
Sven Verdoolaege [Fri, 2 Jan 2009 16:18:42 +0000 (17:18 +0100)]
add isl_mat_col_submul
Sven Verdoolaege [Fri, 2 Jan 2009 15:58:57 +0000 (16:58 +0100)]
add isl_seq_submul
Sven Verdoolaege [Mon, 29 Dec 2008 15:18:43 +0000 (16:18 +0100)]
isl_map_simplify.c: extract out simplify and related code from isl_map.c
Sven Verdoolaege [Mon, 29 Dec 2008 14:41:37 +0000 (15:41 +0100)]
isl_constraint: add limited support for adding divs
Sven Verdoolaege [Sun, 28 Dec 2008 16:28:29 +0000 (17:28 +0100)]
change calling conventions of isl_basic_set_has_defining_{,in}equalit{y,ies}
Before, these functions would only allow detection of defining
(in)equalities on set dimensions. Rather than providing new
functions for detection on other kinds of variables, we generalize
the existing implementation to handle all kinds of variables.
Sven Verdoolaege [Sun, 28 Dec 2008 15:53:03 +0000 (16:53 +0100)]
add isl_basic_{set,map}_dim
Sven Verdoolaege [Sun, 28 Dec 2008 14:22:32 +0000 (15:22 +0100)]
isl_basic_map_gist: also exploit equalities in gisted set
Some inequalities in the gisted set may only be redundant
wrt the context inside the affine hull of the gisted set.
Although we did add the equalities to the (combined) context
before checking for redundancy, we did not perform any kind
of simplification in the combined context.
In particular, we did not perform any Gaussian elimination,
confusing the heuristic in isl_basic_map_constraint_is_redundant.
Sven Verdoolaege [Sun, 28 Dec 2008 13:39:51 +0000 (14:39 +0100)]
isl_basic_map_overlying_set: simplify resulting basic map
Sven Verdoolaege [Thu, 25 Dec 2008 13:51:45 +0000 (14:51 +0100)]
isl_stream: properly reference ctx
Sven Verdoolaege [Thu, 25 Dec 2008 13:43:40 +0000 (14:43 +0100)]
isl_stream.c: extracted from isl_input_omega.c
Sven Verdoolaege [Thu, 25 Dec 2008 12:48:51 +0000 (13:48 +0100)]
add isl_basic_set_read_from_str
Sven Verdoolaege [Wed, 24 Dec 2008 15:02:43 +0000 (16:02 +0100)]
export isl_set_compute_divs
Sven Verdoolaege [Wed, 24 Dec 2008 15:01:08 +0000 (16:01 +0100)]
isl_basic_map_align_divs: check divs of src basic map are known before sorting
Sven Verdoolaege [Wed, 24 Dec 2008 14:54:07 +0000 (15:54 +0100)]
isl_map_gist: ensure divs of map are known
We assume that the divs of the context are known, because we currently
only support gisting in the context of a basic map and computing the
divs of a basic map may result in a union of basic maps.
Sven Verdoolaege [Wed, 24 Dec 2008 14:46:03 +0000 (15:46 +0100)]
isl_basic_map_compute_divs: only (re)compute divs if any div is unknown
Sven Verdoolaege [Wed, 24 Dec 2008 14:31:20 +0000 (15:31 +0100)]
isl_basic_map_eliminate_vars: better handling of divs
In particular, if any div depends on one of the variables that is
being eliminated, then they should be eliminated too.
Furthermore, if a div is eliminated, then its definition should
be removed as well.
Sven Verdoolaege [Tue, 23 Dec 2008 14:51:13 +0000 (15:51 +0100)]
add isl_div abstraction, similar to isl_constraint
Sven Verdoolaege [Mon, 22 Dec 2008 15:25:34 +0000 (16:25 +0100)]
isl_basic_set_compare_at: combine constraints before setting up objective
The number of columns in the objective function should be equal
to the number of columns in the domain, but this number may change
during the call to add_constraints if bmap2 has any divs.
Sven Verdoolaege [Mon, 22 Dec 2008 15:21:34 +0000 (16:21 +0100)]
isl_map_underlying_set: align divs before calling this function
We need to know the meaning of the variables of the set returned by
isl_map_underlying_set in order to add it back in isl_basic_map_overlying_set,
but the number and the order of the existentially quantified variables
may change during a call to isl_map_align_divs.
We therefore need to call isl_map_align_divs first and use one of
the resulting basic maps as a model in our call to isl_basic_map_overlying_set.
Sven Verdoolaege [Mon, 22 Dec 2008 15:16:29 +0000 (16:16 +0100)]
isl_basic_map_overlying_set: properly handle divs in model
Before, we would extend the set after resetting the dimension
but before adding the divs from the model. Any coefficients
in the divs would therefore not be copied.
Sven Verdoolaege [Mon, 22 Dec 2008 14:56:49 +0000 (15:56 +0100)]
isl_basic_map_align_divs: don't make assumptions on the number of divs in dst
In particular, we shouldn't assume that the number of divs in dst
is bigger than the number of divs in src.
We _can_ and do assume that any previous divs have already been aligned
so we don't need to check the next div against previously aligned divs.
Sven Verdoolaege [Mon, 22 Dec 2008 14:00:07 +0000 (15:00 +0100)]
avoid increasing "extra" without also extending the div array
The "extra" variable is used to indicate both the number
of extra variables in the columns beyond those in dim
and the number of rows in the div array.
We can therefore not increase extra, without also extending this array.
Sven Verdoolaege [Fri, 19 Dec 2008 16:30:01 +0000 (17:30 +0100)]
add isl_set_universe
Sven Verdoolaege [Fri, 19 Dec 2008 16:28:47 +0000 (17:28 +0100)]
remove isl_ctx argument from functions accepting isl_dim argument
Since isl_dim structures contain a pointer to a isl_ctx structure,
there is no need to pass in such a pointer separately.
Sven Verdoolaege [Fri, 19 Dec 2008 15:40:32 +0000 (16:40 +0100)]
isl_convex_hull.c: remove dead code
The removed code would handle 0D polytopes, but they have
been handled already a couple of lines up and there is no
way for the dimension to change between the two tests.
Sven Verdoolaege [Mon, 15 Dec 2008 20:22:27 +0000 (21:22 +0100)]
add isl_constraint_negate
Sven Verdoolaege [Sun, 14 Dec 2008 22:45:51 +0000 (23:45 +0100)]
add isl_basic_set_add_constraint for adding manually constructed constraints
The interface is still pretty rudimentary and subject to change.
Sven Verdoolaege [Sun, 14 Dec 2008 22:03:59 +0000 (23:03 +0100)]
replace isl_basic_set_constraint by refcounted isl_constraint
The new isl_constraint should hopefully be more consistent with
the other isl_ structures than the old isl_basic_set_constraint.
Sven Verdoolaege [Fri, 5 Dec 2008 18:06:17 +0000 (19:06 +0100)]
allow parameters and dimensions to be named
The names of the parameters and dimensions are stored in
the recently introduced isl_dim structure. To preserve
the names during set or map operations, many direct manipulations
of dimensions have been rewritten in terms of operations
on isl_dim structures.
Sven Verdoolaege [Fri, 5 Dec 2008 18:06:17 +0000 (19:06 +0100)]
introduce isl_hash_table and move hashing declarations into include/isl_hash.h
This isl_hash_table will be used in the next commit.
This commit also changes the calling convention of isl_hash_init
to be more consistent with the other isl_hash_ functions/macros.
Sven Verdoolaege [Sat, 13 Dec 2008 13:38:06 +0000 (14:38 +0100)]
introduce internal isl_dim_map for representing mappings between dimensions
In particular, when combining constraints from two or more basic sets
or maps, we need to keep track of where the individual coefficients
will end up in the resulting basic set or map.
Currently, only isl_basic_map_apply_range has been modified to
make use of this new mechanism. The others should follow later.
Sven Verdoolaege [Thu, 6 Nov 2008 16:50:04 +0000 (17:50 +0100)]
introduce isl_dim structure for representing shared dimension information
All of isl_basic_set, isl_set, isl_basic_map and isl_map stored
information about the dimension directly. This information is
now shared in a common isl_dim structure.
Direct accesses to the removed fields have been replaced by calls
to getters.
Sven Verdoolaege [Thu, 4 Dec 2008 13:13:24 +0000 (14:13 +0100)]
isl_map.c: avoid potential NULL dereference
Sven Verdoolaege [Tue, 2 Dec 2008 20:22:01 +0000 (21:22 +0100)]
Add backup mp_get_memory_functions implementation for use with old gmps
Sven Verdoolaege [Wed, 12 Nov 2008 17:39:36 +0000 (18:39 +0100)]
isl_map.c: fix typo in comment
Sven Verdoolaege [Thu, 20 Nov 2008 16:09:20 +0000 (17:09 +0100)]
add gist test
Sven Verdoolaege [Tue, 11 Nov 2008 15:06:53 +0000 (16:06 +0100)]
update piplib for improved efficiency
Sven Verdoolaege [Wed, 22 Oct 2008 11:03:14 +0000 (13:03 +0200)]
add isl_set_dim_is_unique
Sven Verdoolaege [Wed, 22 Oct 2008 09:52:10 +0000 (11:52 +0200)]
add isl_set_get_hash
Sven Verdoolaege [Wed, 22 Oct 2008 14:00:41 +0000 (16:00 +0200)]
isl_map.c: fix typo in comment
Sven Verdoolaege [Sat, 8 Nov 2008 11:11:14 +0000 (12:11 +0100)]
isl_basic_map_alloc_div: clear unused extra coefficients
Sven Verdoolaege [Fri, 24 Oct 2008 08:32:55 +0000 (10:32 +0200)]
add isl_basic_set_remove_divs
Sven Verdoolaege [Tue, 14 Oct 2008 12:27:10 +0000 (14:27 +0200)]
use GMP flags when compiling isl_test
Sven Verdoolaege [Tue, 14 Oct 2008 12:14:36 +0000 (14:14 +0200)]
use uint_32_t from stdint.h instead of u_int_32_t
Sven Verdoolaege [Tue, 14 Oct 2008 11:18:34 +0000 (13:18 +0200)]
update piplib for license change and release isl under LGPL 2.1
Sven Verdoolaege [Mon, 13 Oct 2008 10:55:06 +0000 (12:55 +0200)]
clear extra coefficients in isl_basic_map_alloc_{in,}equality
Most functions shouldn't care about how many extra variables
there are, only about how many integer divisions have been
allocated.
Sven Verdoolaege [Sun, 12 Oct 2008 14:10:27 +0000 (16:10 +0200)]
isl_{set,map}_dup: copy subsets instead of duping them
If the subsets are going to be changed, they will be
duped anyway later and otherwise it is a waste to dup them.
Sven Verdoolaege [Sun, 12 Oct 2008 14:10:01 +0000 (16:10 +0200)]
isl_basic_map_eliminate_vars: update number of extra vars after each extension
Sven Verdoolaege [Sat, 4 Oct 2008 21:42:21 +0000 (23:42 +0200)]
isl_basic_map_gist: unique lower or upper bounds are never redundant
Sven Verdoolaege [Sat, 4 Oct 2008 21:29:13 +0000 (23:29 +0200)]
isl_basic_map_convex_hull: unique lower or upper bounds are never redundant
Sven Verdoolaege [Sat, 4 Oct 2008 19:11:17 +0000 (21:11 +0200)]
isl_basic_set_gist: remove redundant constraints with same normal without lp
Sven Verdoolaege [Wed, 1 Oct 2008 18:10:23 +0000 (20:10 +0200)]
add some functions for manipulating constraints
Sven Verdoolaege [Wed, 1 Oct 2008 18:11:55 +0000 (20:11 +0200)]
export isl_basic_set_dup
Sven Verdoolaege [Wed, 1 Oct 2008 09:55:17 +0000 (11:55 +0200)]
isl_set_gist: reduce result using equalities of context
Sven Verdoolaege [Sun, 28 Sep 2008 18:29:12 +0000 (20:29 +0200)]
add isl_basic_set_interval and isl_basic_set_product
Sven Verdoolaege [Sun, 28 Sep 2008 16:30:33 +0000 (18:30 +0200)]
add isl_set_simple_hull
Sven Verdoolaege [Sun, 28 Sep 2008 14:41:27 +0000 (16:41 +0200)]
add isl_set_fast_is_disjoint
Sven Verdoolaege [Sat, 27 Sep 2008 17:53:26 +0000 (19:53 +0200)]
export isl_set_eliminate_dims
Sven Verdoolaege [Sat, 27 Sep 2008 16:06:06 +0000 (18:06 +0200)]
add isl_basic_set_print and isl_set_print for printing in PolyLib format
Sven Verdoolaege [Fri, 26 Sep 2008 17:19:08 +0000 (19:19 +0200)]
add isl_{set,map}_fast_is_equal
Sven Verdoolaege [Fri, 26 Sep 2008 13:35:36 +0000 (15:35 +0200)]
isl_basic_map_eliminate_vars: ensure variable is eliminated before dropping equality
Before we would call isl_basic_map_gauss, but this is overkill
and it won't work if we eliminate variables that are not in the
final position.
Sven Verdoolaege [Fri, 26 Sep 2008 09:49:56 +0000 (11:49 +0200)]
add isl_map_remove_inputs
Sven Verdoolaege [Fri, 26 Sep 2008 08:34:15 +0000 (10:34 +0200)]
add isl_set_lower_bound_dim
Sven Verdoolaege [Fri, 26 Sep 2008 08:06:15 +0000 (10:06 +0200)]
add isl_set_fast_dim_has_fixed_lower_bound
Sven Verdoolaege [Thu, 25 Sep 2008 16:06:49 +0000 (18:06 +0200)]
add isl_basic_set_dim_residue_class
Sven Verdoolaege [Thu, 25 Sep 2008 13:24:24 +0000 (15:24 +0200)]
add isl_set_gist
Sven Verdoolaege [Thu, 25 Sep 2008 08:07:39 +0000 (10:07 +0200)]
add isl_set_fast_dim_is_fixed and isl_map_fast_input_is_fixed
Sven Verdoolaege [Wed, 24 Sep 2008 15:16:00 +0000 (17:16 +0200)]
add isl_map_deltas
Sven Verdoolaege [Wed, 24 Sep 2008 14:28:07 +0000 (16:28 +0200)]
add isl_basic_set_compare_at
Sven Verdoolaege [Tue, 23 Sep 2008 10:35:01 +0000 (12:35 +0200)]
clear rational flags from resulting convex hull
Sven Verdoolaege [Tue, 23 Sep 2008 10:16:57 +0000 (12:16 +0200)]
isl_basic_map_is_empty: don't compute sample for rational sets
Sven Verdoolaege [Sat, 20 Sep 2008 20:28:58 +0000 (22:28 +0200)]
convex_hull: use elimination based convex hull for unbounded polyhedra
Sven Verdoolaege [Sat, 20 Sep 2008 21:11:53 +0000 (23:11 +0200)]
wrap_facet: missing error path
Sven Verdoolaege [Fri, 19 Sep 2008 13:18:00 +0000 (15:18 +0200)]
isl_convex_hull: fix construction of initial facet
We need to find a bound on a constraint over the intersection
of the current hyperplane with the set, but instead we were
looking at intersections with smaller-dimensional spaces.
Sven Verdoolaege [Mon, 22 Sep 2008 22:00:46 +0000 (00:00 +0200)]
isl_basic_map_eliminate_vars: remove all redundant constraints after each step
Sven Verdoolaege [Mon, 22 Sep 2008 14:52:04 +0000 (16:52 +0200)]
add isl_basic_set_remove_dims
Sven Verdoolaege [Mon, 22 Sep 2008 14:44:30 +0000 (16:44 +0200)]
add isl_set_copy_basic_set and isl_set_drop_basic_set
Sven Verdoolaege [Sat, 20 Sep 2008 18:47:00 +0000 (20:47 +0200)]
isl_convex_hull.c: make sure we don't overallocate inequalities
Sven Verdoolaege [Sat, 20 Sep 2008 18:37:27 +0000 (20:37 +0200)]
isl_basic_map_affine_hull: allow computation of affine hull of rational sets
Sven Verdoolaege [Fri, 19 Sep 2008 13:43:40 +0000 (15:43 +0200)]
isl_convex_hull: fix memory leak in error path
Sven Verdoolaege [Fri, 19 Sep 2008 09:50:36 +0000 (11:50 +0200)]
add isl_set_remove_dims