Sven Verdoolaege [Thu, 4 Mar 2010 11:33:24 +0000 (12:33 +0100)]
add support for (piecewise) quasipolynomials
Sven Verdoolaege [Thu, 4 Mar 2010 09:01:54 +0000 (10:01 +0100)]
add isl_map_move
Sven Verdoolaege [Wed, 3 Mar 2010 22:04:34 +0000 (23:04 +0100)]
isl_stream: parse NaN
Sven Verdoolaege [Wed, 3 Mar 2010 21:22:21 +0000 (22:22 +0100)]
isl_stream: parse infty
Sven Verdoolaege [Sun, 28 Feb 2010 08:31:35 +0000 (09:31 +0100)]
export isl_stream.h
Sven Verdoolaege [Sat, 27 Feb 2010 10:12:26 +0000 (11:12 +0100)]
isl_stream: allow user specified keywords
Sven Verdoolaege [Tue, 23 Feb 2010 14:28:15 +0000 (15:28 +0100)]
isl_stream: add some auxiliary functions
Sven Verdoolaege [Fri, 19 Feb 2010 12:12:10 +0000 (13:12 +0100)]
isl_stream: read "definition" token ":="
Sven Verdoolaege [Mon, 1 Mar 2010 19:21:16 +0000 (20:21 +0100)]
add isl_int_tdiv_q
Sven Verdoolaege [Mon, 1 Mar 2010 14:40:25 +0000 (15:40 +0100)]
privately export isl_set_contains_point
Since we are now using the isl_point abstraction, we are
more strict about dimensions and so the code in pip.c that
actually used the wrong dimensions but just happened to work,
needs to be changed too.
Sven Verdoolaege [Thu, 4 Mar 2010 09:50:28 +0000 (10:50 +0100)]
add isl_set_count
Sven Verdoolaege [Mon, 1 Mar 2010 10:20:08 +0000 (11:20 +0100)]
add isl_set_sample_point
Sven Verdoolaege [Thu, 4 Mar 2010 11:38:31 +0000 (12:38 +0100)]
add isl_point
Sven Verdoolaege [Mon, 1 Mar 2010 13:24:52 +0000 (14:24 +0100)]
isl_basic_set_scan: make sure sufficient rows are allocated in tableau
Sven Verdoolaege [Thu, 4 Mar 2010 09:08:47 +0000 (10:08 +0100)]
isl_map_subtract: only add divs when needed
Before, the divs from all basic maps were aligne with each
other, resulting in all divs being added to all basic maps,
even if the arguments of the subtract operation are disjoint.
Now, divs are only added at the point where they are needed
and removed again if it turns out that they are not needed
in the difference.
Sven Verdoolaege [Tue, 2 Mar 2010 11:41:58 +0000 (12:41 +0100)]
add isl_map_order_divs
Sven Verdoolaege [Thu, 4 Mar 2010 10:07:42 +0000 (11:07 +0100)]
extract isl_tab_add_div from isl_tab_pip.c
Sven Verdoolaege [Mon, 1 Mar 2010 11:18:06 +0000 (12:18 +0100)]
isl_vec.c: fix minor whitespace issue
Sven Verdoolaege [Mon, 1 Mar 2010 07:53:58 +0000 (08:53 +0100)]
add isl_set_complement
Sven Verdoolaege [Sun, 28 Feb 2010 08:55:14 +0000 (09:55 +0100)]
export isl_map_make_disjoint
Sven Verdoolaege [Fri, 19 Feb 2010 12:08:52 +0000 (13:08 +0100)]
add isl_hash_table_foreach
Sven Verdoolaege [Sat, 20 Feb 2010 21:02:50 +0000 (22:02 +0100)]
isl_map_print: extract out print_disjuncts
Sven Verdoolaege [Tue, 23 Feb 2010 14:52:27 +0000 (15:52 +0100)]
add isl_set_fast_is_universe
Sven Verdoolaege [Sun, 21 Feb 2010 21:41:06 +0000 (22:41 +0100)]
isl_input.c: accept_affine: fix memory leak on error path
Sven Verdoolaege [Sat, 20 Feb 2010 23:03:57 +0000 (00:03 +0100)]
isl_map_intersect: detect empty result also in case of adding a single constraint
Commit ed3b444 (isl_map_intersect: add special case for adding a single
constraint) added a special case of adding a single constraint but
neglected to detect an empty result in this special case.
Sven Verdoolaege [Wed, 3 Mar 2010 13:13:58 +0000 (14:13 +0100)]
isl_map_read: skip until the end of the last line when reading in PolyLib format
Sven Verdoolaege [Wed, 3 Mar 2010 13:08:36 +0000 (14:08 +0100)]
isl_stream_next_token_on_same_line: check if last token read was a newline
Sven Verdoolaege [Wed, 3 Mar 2010 15:23:21 +0000 (16:23 +0100)]
isl_set_wrap_facet: make sure set is marked rational
When isl_set_wrap_facet is used from with isl_convex_hull.c, then
the set should already have been marked rational, but when
called from outside, it may not, so we have to do it explicitly.
Sven Verdoolaege [Wed, 3 Mar 2010 15:22:46 +0000 (16:22 +0100)]
isl_coalesce.c: fix typo in comment
Sven Verdoolaege [Fri, 19 Feb 2010 18:05:50 +0000 (19:05 +0100)]
isl_map_read: accept list of predicated elements
Sven Verdoolaege [Fri, 19 Feb 2010 16:01:31 +0000 (17:01 +0100)]
isl_map_read: extract out parsing of map body
Sven Verdoolaege [Fri, 19 Feb 2010 17:57:13 +0000 (18:57 +0100)]
isl_map_read: add dummy variable name for unnamed variables
vars_drop assumes there is struct variable in the list of struct
variables for each variable in the dimension specification.
Sven Verdoolaege [Fri, 19 Feb 2010 10:55:14 +0000 (11:55 +0100)]
isl_stream: accept ";" token
Sven Verdoolaege [Fri, 19 Feb 2010 08:26:19 +0000 (09:26 +0100)]
use -O1 optimization level for gcc 4.2
gcc (GCC) 4.2.4 (Ubuntu 4.2.4-1ubuntu4) seems to miscopile isl with -O2
Sven Verdoolaege [Fri, 19 Feb 2010 08:00:05 +0000 (09:00 +0100)]
drop comma at the end of enumerations in include files
Sun's CC compiler warns about them.
Sven Verdoolaege [Thu, 18 Feb 2010 20:37:04 +0000 (21:37 +0100)]
isl_map_read: accept affine combinations of earlier variables in variable tuples
Sven Verdoolaege [Thu, 18 Feb 2010 19:35:04 +0000 (20:35 +0100)]
isl_map_read: construct basic map while reading variable tuples
Sven Verdoolaege [Thu, 18 Feb 2010 16:29:09 +0000 (17:29 +0100)]
isl_map_print: add primes to duplicate names
And, conversely, accept primes in identifier names in isl_map_read.
Sven Verdoolaege [Thu, 18 Feb 2010 14:56:47 +0000 (15:56 +0100)]
isl_map_transitive_closure: improve accuracy by copying some mixed delta constraints
Sven Verdoolaege [Thu, 18 Feb 2010 14:13:55 +0000 (15:13 +0100)]
isl_map_transitive_closure: perform exactness check per component
Sven Verdoolaege [Thu, 18 Feb 2010 13:50:05 +0000 (14:50 +0100)]
isl_map_transitive_closure: reformulate exactness test in terms of extended paths
This will make it easier to compute exactness per component.
Sven Verdoolaege [Tue, 16 Feb 2010 11:42:27 +0000 (12:42 +0100)]
add a transitive closure example from the Omega test suite
Sven Verdoolaege [Wed, 17 Feb 2010 21:06:58 +0000 (22:06 +0100)]
isl_map_transitive_closure: compute power on strongly connected components
By splitting the disjuncts of the input map into strongly connected
components, we can improve the accurateness of the result.
The computation may be more expensive, however, especially
the exactness test.
Sven Verdoolaege [Wed, 17 Feb 2010 21:09:48 +0000 (22:09 +0100)]
isl_map_transitive_closure: intersect with domain and range before projection
This will allow us to compute powers per component in the graph of disjuncts.
Sven Verdoolaege [Mon, 15 Feb 2010 20:47:26 +0000 (21:47 +0100)]
isl_map_transitive_closure: extract out construction of extended path
Sven Verdoolaege [Wed, 17 Feb 2010 18:46:14 +0000 (19:46 +0100)]
isl_map_transitive_closure: move acyclicity test up to where path is constructed
This will allow us to compute acyclicity per component in the graph
of disjuncts.
Sven Verdoolaege [Tue, 16 Feb 2010 11:26:10 +0000 (12:26 +0100)]
add isl_set_lower_bound_si
Sven Verdoolaege [Wed, 17 Feb 2010 18:39:42 +0000 (19:39 +0100)]
isl_map_print: use consistent names on all disjuncts
Although the dimension specifications of the basic maps in a map
are compatible with that of the map itself, the names need not
be the same. Use the dimension specification of the map itself
whenever we need to print out a name to ensure the names are
consistent.
Sven Verdoolaege [Mon, 15 Feb 2010 21:25:23 +0000 (22:25 +0100)]
isl_cat: allow specification of output format on command line
Sven Verdoolaege [Mon, 15 Feb 2010 21:24:56 +0000 (22:24 +0100)]
isl_map_print: support ISL_FORMAT_POLYLIB
Sven Verdoolaege [Wed, 17 Feb 2010 18:16:17 +0000 (19:16 +0100)]
isl_map_coalesce: fix some regressions introduced by recent extensions
c4dc489 (isl_map_coalesce: handle more cases) extended the possibilities
for fusing two basic maps, but introduced some regressions.
Specifically, a "continue" was missing and the code for copying
integer division definitions was removed by mistake.
Sven Verdoolaege [Sun, 14 Feb 2010 18:04:13 +0000 (19:04 +0100)]
add isl_closure test application
Sven Verdoolaege [Sat, 13 Feb 2010 20:15:40 +0000 (21:15 +0100)]
add transitive closure example from Kelly's 1996 paper
Sven Verdoolaege [Sat, 13 Feb 2010 22:10:07 +0000 (23:10 +0100)]
isl_map_transitive_closure: construct general paths
Sven Verdoolaege [Sat, 13 Feb 2010 14:20:46 +0000 (15:20 +0100)]
isl_map_transitive_closure: prepare for the construction of general paths
In particular, integrate the collection of constant steps in construct_path.
Sven Verdoolaege [Sat, 13 Feb 2010 13:36:23 +0000 (14:36 +0100)]
isl_map_transitive_closure: construct paths that can be composed
In particular, keep track of the number of steps in an extra
coordinates such that composition simply sums the number of steps.
Sven Verdoolaege [Sat, 13 Feb 2010 13:51:44 +0000 (14:51 +0100)]
isl_transitive_closure: extract out construction of path from map_power
We want to generalize the construction to general mappings in a later
commit.
Sven Verdoolaege [Sat, 13 Feb 2010 13:02:00 +0000 (14:02 +0100)]
isl_map_transitive_closure: use more generic acyclicity test
Sven Verdoolaege [Mon, 15 Feb 2010 09:14:08 +0000 (10:14 +0100)]
isl_map_print: add parentheses around disjuncts
Sven Verdoolaege [Mon, 15 Feb 2010 09:00:39 +0000 (10:00 +0100)]
isl_hash_table: use size that corresponds to the number of bits
Sven Verdoolaege [Mon, 15 Feb 2010 08:46:01 +0000 (09:46 +0100)]
isl_hash_table: grow table when we run out of entries
Sven Verdoolaege [Mon, 15 Feb 2010 08:25:18 +0000 (09:25 +0100)]
isl_map_coalesce: only use non-redundant constraints as potential facets
Sven Verdoolaege [Sat, 13 Feb 2010 10:05:40 +0000 (11:05 +0100)]
add isl_set_fix_si
Sven Verdoolaege [Sat, 13 Feb 2010 09:39:01 +0000 (10:39 +0100)]
isl_map_read: accept chains of comparisons
Sven Verdoolaege [Wed, 10 Feb 2010 10:25:25 +0000 (11:25 +0100)]
export isl_map_align_divs
Sven Verdoolaege [Wed, 10 Feb 2010 10:14:17 +0000 (11:14 +0100)]
isl_map_read: forget existentially quantified variables after each disjunct
Sven Verdoolaege [Wed, 10 Feb 2010 10:08:06 +0000 (11:08 +0100)]
isl_input.c: remove needless indirection
Sven Verdoolaege [Tue, 9 Feb 2010 15:46:55 +0000 (16:46 +0100)]
doc: document how to inspect sets and relations
Sven Verdoolaege [Mon, 8 Feb 2010 19:17:39 +0000 (20:17 +0100)]
export isl_map_compute_divs
Sven Verdoolaege [Tue, 9 Feb 2010 10:48:38 +0000 (11:48 +0100)]
isl_constraint_div: make sure requested div is a known div
Sven Verdoolaege [Tue, 9 Feb 2010 10:39:55 +0000 (11:39 +0100)]
doc: drop documentation of _dump functions
We have proper output functions now, so these should no longer be used.
Sven Verdoolaege [Tue, 9 Feb 2010 10:26:08 +0000 (11:26 +0100)]
isl_map_print: improve output
Sven Verdoolaege [Tue, 9 Feb 2010 14:29:12 +0000 (15:29 +0100)]
add isl_basic_map_foreach_constraint
Sven Verdoolaege [Mon, 8 Feb 2010 18:24:16 +0000 (19:24 +0100)]
isl_map_coalesce: handle more cases
In particular, if one basic map has a single constraint that cuts
off all or part of the other basic map such that the part that is cut
off lies entirely on a hyperplane adjacent to the constraint,
then try to combine the two basic maps by adding some wrapping constraints.
Sven Verdoolaege [Fri, 5 Feb 2010 16:11:11 +0000 (17:11 +0100)]
privately export isl_set_wrap_facet
Sven Verdoolaege [Fri, 5 Feb 2010 13:29:44 +0000 (14:29 +0100)]
isl_convex_hull.c: wrap_facet: allow unbounded facets again.
This reverts commit 7c08353 (isl_convex_hull.c: update wrap_facet to
the fact we only apply it on polytopes).
We want to export wrap_facet and allow it to be called on unbounded
polyhedra.
Sven Verdoolaege [Mon, 8 Feb 2010 15:05:56 +0000 (16:05 +0100)]
doc: improve decription of isl_map_transitive_closure
Sven Verdoolaege [Mon, 8 Feb 2010 15:04:28 +0000 (16:04 +0100)]
isl_map_transitive_closure: improve test for exactness
Sven Verdoolaege [Fri, 5 Feb 2010 09:04:51 +0000 (10:04 +0100)]
add a counter example for Theorem 1 of the COCOA paper
Sven Verdoolaege [Mon, 8 Feb 2010 14:12:17 +0000 (15:12 +0100)]
add isl_map_lower_bound_si
Sven Verdoolaege [Mon, 8 Feb 2010 11:08:06 +0000 (12:08 +0100)]
isl_map_power: coalesce domain and range
Sven Verdoolaege [Mon, 8 Feb 2010 08:36:02 +0000 (09:36 +0100)]
isl_flow.c: add missing isl_access_info_free return type
Sven Verdoolaege [Fri, 5 Feb 2010 09:40:19 +0000 (10:40 +0100)]
isl_coalesce.c: fix typo in comment
Sven Verdoolaege [Sun, 7 Feb 2010 11:05:21 +0000 (12:05 +0100)]
include/isl_int.h: argument of mp_get_memory_functions should have C linkage
Sven Verdoolaege [Thu, 4 Feb 2010 21:51:15 +0000 (22:51 +0100)]
isl_map_read: accept lists of affine expressions in constraints
Sven Verdoolaege [Thu, 4 Feb 2010 21:48:48 +0000 (22:48 +0100)]
add isl_mat_from_row_vec and isl_mat_vec_concat
Sven Verdoolaege [Thu, 4 Feb 2010 17:26:23 +0000 (18:26 +0100)]
isl_map_read: read extended polylib format
Sven Verdoolaege [Thu, 4 Feb 2010 17:24:43 +0000 (18:24 +0100)]
add isl_stream_next_token_on_same_line
Sven Verdoolaege [Thu, 4 Feb 2010 16:51:11 +0000 (17:51 +0100)]
isl_map_read: make sure polylib constraint coefficients are on a single line
Sven Verdoolaege [Thu, 4 Feb 2010 16:50:36 +0000 (17:50 +0100)]
isl_{map,set}_dim: handle NULL input
Sven Verdoolaege [Thu, 4 Feb 2010 16:46:04 +0000 (17:46 +0100)]
isl_map_read: use more uniform way of reading in polylib constraint coefficients
Sven Verdoolaege [Thu, 4 Feb 2010 13:08:51 +0000 (14:08 +0100)]
isl_transitive_closure.c: fix typo in comment
Sven Verdoolaege [Thu, 4 Feb 2010 12:58:40 +0000 (13:58 +0100)]
isl_map_transitive_closure: use more relaxed exactness check on acyclic graphs
In particular, for the transitive closure, we only need to check that
there is a path of _some_ length with a valid initial segment.
However, we can only do this if the corresponding graph is acyclic.
For now, we restrict ourselves to graphs that are obviously acyclic.
Sven Verdoolaege [Wed, 3 Feb 2010 17:29:52 +0000 (18:29 +0100)]
add isl_map_power and isl_map_transitive_closure
Sven Verdoolaege [Wed, 3 Feb 2010 17:13:49 +0000 (18:13 +0100)]
isl_map_subtract.c: make some internal functions static
Sven Verdoolaege [Wed, 3 Feb 2010 15:53:39 +0000 (16:53 +0100)]
add generic isl_map_project_out
Sven Verdoolaege [Tue, 2 Feb 2010 14:21:58 +0000 (15:21 +0100)]
add isl_{map,set}_add
Sven Verdoolaege [Tue, 2 Feb 2010 13:39:25 +0000 (14:39 +0100)]
rename isl_{map,set}_add to isl_{map,set}_add_basic_{map,set}
Sven Verdoolaege [Tue, 2 Feb 2010 13:23:02 +0000 (14:23 +0100)]
isl_set_project_out: always update dimension, even for empty sets
Sven Verdoolaege [Tue, 2 Feb 2010 11:16:08 +0000 (12:16 +0100)]
isl_dim_join: don't require names of joined variables to match