Sven Verdoolaege [Tue, 15 Feb 2011 15:01:16 +0000 (16:01 +0100)]
isl_stream_read_map: allow extra ';' at end of map description
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 13 Feb 2011 14:11:41 +0000 (15:11 +0100)]
isl_stream_read_map: allow negations
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 13 Feb 2011 13:34:24 +0000 (14:34 +0100)]
isl_stream_read_map: allow existential quantification over disjunctions
Before, we would only allow existential quantification within a single
disjunct because the existentially quantified variables were being
added directly to a basic map.
Now, we first add extra output variables and project them out at the end.
The disadvantage is that we currently lose any explicit definition of
the existentially quantified variables in the input. Usually, we can
recover them from the constraints that are added when we meet such a
definition, but it does require some extra processing.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 13 Feb 2011 13:23:02 +0000 (14:23 +0100)]
privately export isl_basic_map_add_div_constraints_var
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 13 Feb 2011 09:15:25 +0000 (10:15 +0100)]
isl_morph_basic_set: preserve rationality of input
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 13 Feb 2011 09:15:09 +0000 (10:15 +0100)]
add isl_basic_set_is_rational
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 13 Feb 2011 09:14:08 +0000 (10:14 +0100)]
isl_printer_print_basic_map: explicitly mark rational maps
Sven Verdoolaege [Sun, 13 Feb 2011 09:07:31 +0000 (10:07 +0100)]
isl_stream_read_map: read rational maps
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 13 Feb 2011 09:05:01 +0000 (10:05 +0100)]
isl_basic_map_insert: preserve rationality of input
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 13 Feb 2011 08:44:53 +0000 (09:44 +0100)]
add isl_basic_map_set_rational
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 13 Feb 2011 08:22:14 +0000 (09:22 +0100)]
isl_basic_map_fast_cmp: differentiate between rational and integer sets
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 13 Feb 2011 08:08:45 +0000 (09:08 +0100)]
isl_output.c: remove some code duplication
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 13 Feb 2011 08:05:48 +0000 (09:05 +0100)]
isl_printer_print_basic_{set,map}: don't start new line in isl format
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 12 Feb 2011 15:55:03 +0000 (16:55 +0100)]
isl_stream_read_map: accept '|' at start of constraints
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 12 Feb 2011 15:48:34 +0000 (16:48 +0100)]
isl_stream: keep track of textual representation of tokens for better error reporting
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Fri, 11 Feb 2011 16:06:26 +0000 (17:06 +0100)]
isl_input.c: clean up read_disjuncts
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Fri, 11 Feb 2011 16:02:23 +0000 (17:02 +0100)]
isl_stream_read_map: accept disjunctions within a conjunct
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 10 Feb 2011 13:01:27 +0000 (14:01 +0100)]
isl_convex_hull.c: explicitly mark wrapping lp problem as rational
This shouldn't have any effect at the moment, but in future we may
want to be more aggressive on non-rational tableau.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 10 Feb 2011 12:52:04 +0000 (13:52 +0100)]
isl_tab_min: micro-optimization: postpone taking into account denominator
The denominator of the affine expression shouldn't have any effect
on the point where the minimum is reached. Moreover, for non-rational
tableaus, it may be confusing for future optimizations to have a row
that may attain rational values. It is therefore beter to multiply
in the denominator after the optimum has been computed.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 5 Feb 2011 20:05:07 +0000 (21:05 +0100)]
Merge branch 'maint'
Sven Verdoolaege [Sat, 5 Feb 2011 19:02:44 +0000 (20:02 +0100)]
isl_tab_add_row: add further explanation
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 5 Feb 2011 18:57:49 +0000 (19:57 +0100)]
isl_tab.c: fix typos in comments
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 5 Feb 2011 20:01:22 +0000 (21:01 +0100)]
isl_tab_pip.c: correctly detect non-negativity of divs in lexmin contexts
In particular, the variables used to encode the div in the context
tableau is always non-negative, but the actual variable used in the main
tableau may not be non-negative.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 5 Feb 2011 19:51:26 +0000 (20:51 +0100)]
add test
Sven Verdoolaege [Sat, 5 Feb 2011 15:48:07 +0000 (16:48 +0100)]
test both context handling mechanisms of isl_pip
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 5 Feb 2011 18:53:45 +0000 (19:53 +0100)]
isl_tab_is_equality: properly support "big parameter"
An attempt was made in 40b68af (isl_tab: introduce support for "big parameters",
Wed Aug 5 10:22:52 2009 +0200), but the change to isl_tab_is_equality
was incomplete.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 3 Feb 2011 15:39:49 +0000 (16:39 +0100)]
isl_tab_pip.c: fix typo in comment
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Tue, 1 Feb 2011 09:48:55 +0000 (10:48 +0100)]
isl_affine_hull.c: fix typos in comments
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 29 Jan 2011 08:47:01 +0000 (09:47 +0100)]
isl_union_map_compute_flow: return accesses with no source
And similarly for isl_flow_get_no_source.
Before, we would return the iterations where those accesses occur,
but if more than one element is accessed from within the same iteration,
then this does not provide enough information.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 5 Feb 2011 09:40:15 +0000 (10:40 +0100)]
Merge branch 'maint'
Sven Verdoolaege [Sat, 5 Feb 2011 09:09:16 +0000 (10:09 +0100)]
isl_union_map.c: inplace: pass data pointer to isl_hash_table_foreach
isl_hash_table_foreach expects a data pointer but was being passed
a code pointer from within inplace. On some systems data pointers
may be different from code pointers.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 27 Jan 2011 19:01:28 +0000 (20:01 +0100)]
isl_dim_move: update parameters of nested spaces
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 26 Jan 2011 20:59:54 +0000 (21:59 +0100)]
add isl_map_nat_universe
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 26 Jan 2011 18:47:22 +0000 (19:47 +0100)]
clean up isl_set_from_basic_set
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 26 Jan 2011 18:23:39 +0000 (19:23 +0100)]
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 <skimo@kotnet.org>
Sven Verdoolaege [Wed, 26 Jan 2011 10:58:17 +0000 (11:58 +0100)]
rename "omega" transitive closure to "box" transitive closure
Calling it "omega" is confusing because it doesn't actually call
omega or even implement the same algorithm that is implemented
in omega.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 23 Jan 2011 17:40:21 +0000 (18:40 +0100)]
export isl_int_obj_free
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 23 Jan 2011 14:43:14 +0000 (15:43 +0100)]
isl_vertices.c: fix typos
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 23 Jan 2011 14:42:47 +0000 (15:42 +0100)]
isl_union_templ.c: fix typo
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 23 Jan 2011 14:42:21 +0000 (15:42 +0100)]
isl_map_subtract.c: n_non_redundant: propage isl_ctx
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 23 Jan 2011 14:41:41 +0000 (15:41 +0100)]
isl_bernstein.c: fix typo
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Fri, 10 Dec 2010 17:07:01 +0000 (18:07 +0100)]
add isl_union_pw_qpolynomial_mul_isl_int
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 9 Dec 2010 18:56:31 +0000 (19:56 +0100)]
isl_stream_read_obj: read int objects
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 9 Dec 2010 18:06:22 +0000 (19:06 +0100)]
add int objects for use in iscc
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Mon, 10 Jan 2011 16:46:52 +0000 (17:46 +0100)]
isl_basic_map_remove_divs: finalize result
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Fri, 21 Jan 2011 15:19:44 +0000 (16:19 +0100)]
add isl_basic_set_get_tuple_name
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 22 Jan 2011 12:22:15 +0000 (13:22 +0100)]
Merge branch 'maint'
Sven Verdoolaege [Sat, 22 Jan 2011 12:17:10 +0000 (13:17 +0100)]
isl_union_map_sample: don't return NULL on empty input
Throughout isl, NULL is used to mark an error return, so we shouldn't
return NULL simply because the input is empty. Instead, we now return
an empty basic map living in a fairly arbitrary space, but that shouldn't
be a problem.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Fri, 21 Jan 2011 15:44:29 +0000 (16:44 +0100)]
isl_basic_map_set_tuple_name: finalize result
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 20 Jan 2011 14:30:52 +0000 (15:30 +0100)]
isl_transitive_closure.c: more anonymize input map during incremental computation
This instance was missed in 5292e00 (isl_transitive_closure.c: anonymize
input map during incremental computation, Mon Aug 2 11:57:07 2010 +0200).
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 20 Jan 2011 13:42:37 +0000 (14:42 +0100)]
isl_basic_set_factorizer: make sure group information gets updated
We lazily keep track of which group a column belongs to.
The actual construction of the factors assumes the groups have been
updated, however, so we need to make sure that the group of each
column eventually gets updated.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 26 Dec 2010 12:12:05 +0000 (13:12 +0100)]
add isl_union_map_range_product
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 19 Jan 2011 20:26:28 +0000 (21:26 +0100)]
doc: document product functions
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 26 Dec 2010 22:14:34 +0000 (23:14 +0100)]
rename isl_basic_set_product to isl_basic_set_list_product
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Tue, 18 Jan 2011 13:17:25 +0000 (14:17 +0100)]
isl_set_convex_hull: optionally use Fourier-Motzkin based algorithm
The Fourier-Motzkin based algorithm used to be the default but was
disabled when the wrapping based algorithm was completed in 6371ed7
(isl_map_convex_hull: handle unbounded, but pointed, case using wrapping,
Mon Apr 13 23:11:19 2009 +0200).
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 15 Jan 2011 15:54:28 +0000 (16:54 +0100)]
isl_basic_set_sample_point: exploit factorization if any
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 16 Jan 2011 11:24:37 +0000 (12:24 +0100)]
add isl_morph_vec
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 15 Jan 2011 15:52:26 +0000 (16:52 +0100)]
change prototype of isl_vec_dump
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 15 Jan 2011 15:48:36 +0000 (16:48 +0100)]
add isl_printer_print_vec
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 15 Jan 2011 09:57:36 +0000 (10:57 +0100)]
add isl_union_set_apply_union_pw_qpolynomial_fold
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 15 Jan 2011 09:40:31 +0000 (10:40 +0100)]
export isl_union_map_from_domain and isl_union_map_from_range
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Fri, 14 Jan 2011 18:15:15 +0000 (19:15 +0100)]
isl_basic_map_intersect_domain: replace open-coded isl_basic_map_from_domain
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 13 Jan 2011 15:30:24 +0000 (16:30 +0100)]
isl_stream_read_map: accept modulo expressions
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 13 Jan 2011 11:23:49 +0000 (12:23 +0100)]
isl_basic_map_insert: don't simplify the result
None of the constraints are changed in any way, so there shouldn't
be any need to call isl_basic_map_simplify.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 16 Jan 2011 14:04:07 +0000 (15:04 +0100)]
Merge branch 'maint'
Sven Verdoolaege [Sun, 16 Jan 2011 14:00:31 +0000 (15:00 +0100)]
isl_basic_map_from_constraint_matrices: clear newly created divs
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 12 Jan 2011 16:27:07 +0000 (17:27 +0100)]
isl_token_free: free string representation of keywords
This should have been part of ab6eaa2 (isl_stream_next_token: keep track
of string representation of keywords, Thu Dec 23 15:32:27 2010 +0100).
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 12 Jan 2011 16:06:49 +0000 (17:06 +0100)]
isl_input.c: read_factor: drop unexpected identifier
We need to keep the internal state consistent, even if we get unexpected input.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Tue, 11 Jan 2011 23:43:20 +0000 (00:43 +0100)]
isl_input.c: accept_affine_factor: avoid double free on invalid input
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Tobias Grosser [Fri, 7 Jan 2011 22:45:03 +0000 (17:45 -0500)]
Add isl_union_(set/map)_detect_equalities
Document also all *_detect_equalities functions.
Signed-off-by: Tobias Grosser <grosser@fim.uni-passau.de>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 23 Dec 2010 14:33:26 +0000 (15:33 +0100)]
isl_stream_read_map: allow space names that happen to be keywords
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 23 Dec 2010 14:32:27 +0000 (15:32 +0100)]
isl_stream_next_token: keep track of string representation of keywords
This allows us to print a more meaningful error message when a keyword
is used in an unexpected place.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Mon, 3 Jan 2011 12:05:10 +0000 (13:05 +0100)]
add isl_basic_set_flatten
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Mon, 3 Jan 2011 11:08:40 +0000 (12:08 +0100)]
add isl_union_map_simple_hull
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Fri, 7 Jan 2011 15:04:56 +0000 (16:04 +0100)]
Merge branch 'maint'
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 2 Jan 2011 14:12:20 +0000 (15:12 +0100)]
add isl_set_remove_unknown_divs
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 1 Jan 2011 11:09:01 +0000 (12:09 +0100)]
isl_map_is_subset: don't compute divs of minuend
The knowns divs of the minuend can be exploited, but only those
of the subtrahend are essential for the implementation.
Since the computation of divs can be expensive and since they
are just thrown away afterwards, it's probably best not to compute
the divs of the minuend explicitly.
In principle, isl_map_subtract could be changed in a similar way,
but there the divs are actually visible in the result, so it may
be worth it to compute them.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 1 Jan 2011 09:48:08 +0000 (10:48 +0100)]
rename isl_map_is_singleton to isl_map_fast_is_singleton
The function is only meant to detect obvious cases.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 1 Jan 2011 09:44:18 +0000 (10:44 +0100)]
add isl_map_fast_is_single_valued
This is mainly meant to deal with the easy cases in isl_map_is_single_valued.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Mon, 3 Jan 2011 11:53:55 +0000 (12:53 +0100)]
add isl_qpolynomial_dump
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 30 Dec 2010 15:19:18 +0000 (16:19 +0100)]
export isl_union_set_dump
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Tue, 28 Dec 2010 17:36:34 +0000 (18:36 +0100)]
isl_qpolynomial_add_on_domain: compute gist with respect to domain
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 6 Jan 2011 19:56:26 +0000 (20:56 +0100)]
isl_union_map_coalesce and isl_union_map_compute_divs: properly handle errors
Since we are modifying a union_map that may be used elsewhere,
we need to make sure to not invalidate part of it.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 26 Dec 2010 13:37:00 +0000 (14:37 +0100)]
isl_basic_map_solve_lp: use denominator
Before, the denominator would simply be ignored and denominator one
was used instead.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 5 Jan 2011 09:26:32 +0000 (10:26 +0100)]
Merge commit 'isl-0.05.1'
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 5 Jan 2011 09:23:11 +0000 (10:23 +0100)]
isl 0.05.1
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 5 Jan 2011 08:50:28 +0000 (09:50 +0100)]
isl_tab_basic_map_partial_lexopt: fix up symmetry detection
The symmetry detection of a41dca9 (isl_tab_basic_map_partial_lexopt:
detect and exploit simple symmetries, Mon Dec 13 16:45:44 2010 +0100)
was a bit too eager in that it would also detect symmetries on affine
expressions involving existentially quantified variables.
Those variables are only available in the input and therefore the
mechanism for exploiting symmetries does not work on them, leading
to incorrect results.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 26 Dec 2010 21:42:41 +0000 (22:42 +0100)]
isl_basic_map_universe: finalize result
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 26 Dec 2010 15:55:11 +0000 (16:55 +0100)]
isl_seq.h: allow inclusion from C++
Tobias Grosser [Thu, 30 Dec 2010 20:12:21 +0000 (15:12 -0500)]
Add GDB module that defines an islprint command
Add a python library that is installed next to libisl. GDB will automatically
load it and add a new gdbcommand called "islprint". This command can be used to
prettyprint isl values. It does not install an official pretty printer, as such
a printer will also pretty print stacktraces which may reference values already
freed.
Before:
(gdb) print stride
$1 = (isl_set *) 0x122e6c0
Now also possible:
(gdb) islprint stride
$1 = "{ MemRef_A[1] }"
(gdb) is stride
$1 = "{ MemRef_A[1] }"
Signed-off-by: Tobias Grosser <grosser@fim.uni-passau.de>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 30 Dec 2010 14:02:30 +0000 (15:02 +0100)]
reimplement isl_map_partial_lexopt
In case of a map that is a union of more than one basic map,
the old implementation would look for solutions of later basic
maps in those pieces of the domain where earlier basic maps
have no solutions. This could lead to the domain being broken
up into many small pieces, sometimes dramatically so.
The new implementation tries to avoid some of this splintering
by computing solutions for each basic map separately and then
combining the results.
In the reported case, the map was actually single-valued, so
instead we could have also detected this special case and just
returned the input or we could have tried to make the parametric
integer programming integer return a more compact result,
but the new implementation is more general that the first option
and easier than the second option.
Reported-by: Tobias Grosser <grosser@fim.uni-passau.de>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 30 Dec 2010 14:08:09 +0000 (15:08 +0100)]
isl_map: fix typos in comments
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 30 Dec 2010 12:47:49 +0000 (13:47 +0100)]
add some more isl_map_lexmin tests
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Mon, 27 Dec 2010 20:30:36 +0000 (21:30 +0100)]
add isl_qpolynomial_add_isl_int
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Tue, 28 Dec 2010 09:53:06 +0000 (10:53 +0100)]
add isl_pw_qpolynomial_fold_dump
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Tue, 28 Dec 2010 09:49:54 +0000 (10:49 +0100)]
add isl_pw_qpolynomial_dump
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Mon, 27 Dec 2010 19:06:01 +0000 (20:06 +0100)]
add isl_qpolynomial_fold_dump
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Mon, 27 Dec 2010 19:03:37 +0000 (20:03 +0100)]
add isl_qpolynomial_fold_get_ctx
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Mon, 27 Dec 2010 22:03:53 +0000 (23:03 +0100)]
isl_printer_print_qpolynomial_fold: support C format
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Mon, 27 Dec 2010 19:04:52 +0000 (20:04 +0100)]
export isl_printer_print_qpolynomial_fold
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>