platform/upstream/isl.git
14 years agoadd isl_map_is_single_valued
Sven Verdoolaege [Fri, 4 Jun 2010 18:20:37 +0000 (20:20 +0200)]
add isl_map_is_single_valued

14 years agoisl_basic_map_foreach_constraint: make sure input has been finalized
Sven Verdoolaege [Fri, 4 Jun 2010 17:08:34 +0000 (19:08 +0200)]
isl_basic_map_foreach_constraint: make sure input has been finalized

Each constraint gets a copy of the input and a line from the constraint
matrix of the input.  If the input wouldn't be finalized, then the copy
would create a duplicate and then the line wouldn't match the basic map.
This is problematic for especially isl_constraint_is_equality.

14 years agoisl_basic_map_copy: mark duplicated copy as finalized
Sven Verdoolaege [Thu, 3 Jun 2010 16:36:56 +0000 (18:36 +0200)]
isl_basic_map_copy: mark duplicated copy as finalized

If an unfinalized copy is needed, the caller will perform an
isl_basic_map_cow on the copy.

14 years agoisl_basic_set_lift: finalize result
Sven Verdoolaege [Thu, 3 Jun 2010 16:34:04 +0000 (18:34 +0200)]
isl_basic_set_lift: finalize result

14 years agoisl_basic_map_move_dims: always finalize result
Sven Verdoolaege [Thu, 3 Jun 2010 16:33:14 +0000 (18:33 +0200)]
isl_basic_map_move_dims: always finalize result

14 years agoisl_basic_map_from_constraint: finalize result
Sven Verdoolaege [Thu, 3 Jun 2010 16:32:26 +0000 (18:32 +0200)]
isl_basic_map_from_constraint: finalize result

14 years agoisl_access_info_compute_flow: handle may accesses
Sven Verdoolaege [Wed, 26 May 2010 18:51:25 +0000 (20:51 +0200)]
isl_access_info_compute_flow: handle may accesses

14 years agoisl_access_info_compute_flow: handle multi-valued sink access relations
Sven Verdoolaege [Wed, 26 May 2010 20:30:49 +0000 (22:30 +0200)]
isl_access_info_compute_flow: handle multi-valued sink access relations

In particular, if any given sink iteration accesses more than one
data element, then we compute dependences for each of these data elements.
Before, we would only compute a dependence for the data elements
that was accessed last before the sink.

14 years agoremove some unused variables
Sven Verdoolaege [Sun, 30 May 2010 15:17:03 +0000 (17:17 +0200)]
remove some unused variables

14 years agofix some icc warnings
Sven Verdoolaege [Sun, 30 May 2010 14:34:08 +0000 (16:34 +0200)]
fix some icc warnings

14 years agorename isl_pw_qpolynomial_move and add isl_pw_qpolynomial_fold_move_dims
Sven Verdoolaege [Mon, 24 May 2010 16:04:24 +0000 (18:04 +0200)]
rename isl_pw_qpolynomial_move and add isl_pw_qpolynomial_fold_move_dims

14 years agoisl_ctx: keep track of user options
Sven Verdoolaege [Fri, 21 May 2010 14:26:43 +0000 (16:26 +0200)]
isl_ctx: keep track of user options

14 years agoimproved argument parsing
Sven Verdoolaege [Tue, 18 May 2010 09:56:46 +0000 (11:56 +0200)]
improved argument parsing

14 years agoisl_options_parse: print help message
Sven Verdoolaege [Sat, 15 May 2010 14:40:46 +0000 (16:40 +0200)]
isl_options_parse: print help message

14 years agoadd isl_bound test application
Sven Verdoolaege [Mon, 10 May 2010 11:14:49 +0000 (13:14 +0200)]
add isl_bound test application

14 years agoadd isl_pw_qpolynomial_bound_range
Sven Verdoolaege [Sat, 8 May 2010 09:43:15 +0000 (11:43 +0200)]
add isl_pw_qpolynomial_bound_range

14 years agoadd isl_pw_qpolynomial_fold_morph
Sven Verdoolaege [Wed, 12 May 2010 20:58:02 +0000 (22:58 +0200)]
add isl_pw_qpolynomial_fold_morph

14 years agoadd rudimentary isl_morph
Sven Verdoolaege [Wed, 12 May 2010 09:36:58 +0000 (11:36 +0200)]
add rudimentary isl_morph

14 years agoadd isl_seq_set
Sven Verdoolaege [Thu, 13 May 2010 11:40:22 +0000 (13:40 +0200)]
add isl_seq_set

14 years agoisl_equalities.c: fix typo in comment
Sven Verdoolaege [Wed, 12 May 2010 21:08:21 +0000 (23:08 +0200)]
isl_equalities.c: fix typo in comment

14 years agoadd isl_mat_insert_rows
Sven Verdoolaege [Wed, 12 May 2010 09:36:19 +0000 (11:36 +0200)]
add isl_mat_insert_rows

14 years agoadd isl_mat_normalize
Sven Verdoolaege [Wed, 12 May 2010 09:35:54 +0000 (11:35 +0200)]
add isl_mat_normalize

14 years agoadd isl_mat_diagonal
Sven Verdoolaege [Wed, 12 May 2010 09:34:55 +0000 (11:34 +0200)]
add isl_mat_diagonal

14 years agoisl_mat_lin_to_aff: fix error handling
Sven Verdoolaege [Wed, 12 May 2010 09:33:33 +0000 (11:33 +0200)]
isl_mat_lin_to_aff: fix error handling

14 years agoisl_qpolynomial_opt_on_domain: handle empty input
Sven Verdoolaege [Wed, 12 May 2010 09:30:46 +0000 (11:30 +0200)]
isl_qpolynomial_opt_on_domain: handle empty input

14 years agoisl_name_alloc: fix error handling
Sven Verdoolaege [Wed, 12 May 2010 09:29:06 +0000 (11:29 +0200)]
isl_name_alloc: fix error handling

14 years agoadd isl_dim_offset
Sven Verdoolaege [Wed, 12 May 2010 09:27:14 +0000 (11:27 +0200)]
add isl_dim_offset

14 years agoisl_equalities.c: fix typos in comments
Sven Verdoolaege [Tue, 11 May 2010 11:25:32 +0000 (13:25 +0200)]
isl_equalities.c: fix typos in comments

14 years agoadd isl_pw_qpolynomial_fold_covers
Sven Verdoolaege [Mon, 10 May 2010 10:56:42 +0000 (12:56 +0200)]
add isl_pw_qpolynomial_fold_covers

14 years agoadd isl_qpolynomial_le_cst
Sven Verdoolaege [Sun, 9 May 2010 17:25:41 +0000 (19:25 +0200)]
add isl_qpolynomial_le_cst

14 years agoprivately export isl_set_is_bounded
Sven Verdoolaege [Sun, 9 May 2010 14:06:52 +0000 (16:06 +0200)]
privately export isl_set_is_bounded

14 years agoadd isl_set_count_upto
Sven Verdoolaege [Sat, 8 May 2010 17:23:08 +0000 (19:23 +0200)]
add isl_set_count_upto

14 years agoadd isl_set_scan
Sven Verdoolaege [Sat, 8 May 2010 17:08:10 +0000 (19:08 +0200)]
add isl_set_scan

14 years agoadd isl_stream_read_pw_qpolynomial
Sven Verdoolaege [Sat, 8 May 2010 10:19:49 +0000 (12:19 +0200)]
add isl_stream_read_pw_qpolynomial

14 years agoadd isl_qpolynomial_from_term
Sven Verdoolaege [Mon, 3 May 2010 20:52:51 +0000 (22:52 +0200)]
add isl_qpolynomial_from_term

14 years agoadd isl_qpolynomial_from_constraint
Sven Verdoolaege [Mon, 3 May 2010 20:03:39 +0000 (22:03 +0200)]
add isl_qpolynomial_from_constraint

14 years agoadd isl_basic_set_foreach_bound_pair
Sven Verdoolaege [Mon, 3 May 2010 17:05:32 +0000 (19:05 +0200)]
add isl_basic_set_foreach_bound_pair

14 years agoadd isl_qpolynomial_as_polynomial_on_domain
Sven Verdoolaege [Sat, 1 May 2010 12:09:59 +0000 (14:09 +0200)]
add isl_qpolynomial_as_polynomial_on_domain

14 years agoadd isl_qpolynomial_substitute
Sven Verdoolaege [Mon, 10 May 2010 19:33:43 +0000 (21:33 +0200)]
add isl_qpolynomial_substitute

14 years agoadd isl_basic_set_dims_get_sign
Sven Verdoolaege [Sat, 24 Apr 2010 17:13:17 +0000 (19:13 +0200)]
add isl_basic_set_dims_get_sign

14 years agoisl_ctx: add zero
Sven Verdoolaege [Mon, 3 May 2010 18:56:34 +0000 (20:56 +0200)]
isl_ctx: add zero

14 years agoadd isl_qpolynomial_neginfty
Sven Verdoolaege [Mon, 3 May 2010 18:43:06 +0000 (20:43 +0200)]
add isl_qpolynomial_neginfty

14 years agoadd isl_basic_set_drop
Sven Verdoolaege [Mon, 3 May 2010 17:04:17 +0000 (19:04 +0200)]
add isl_basic_set_drop

14 years agoisl_qpolynomial_fold_opt_on_domain: fix typo
Sven Verdoolaege [Mon, 3 May 2010 16:58:17 +0000 (18:58 +0200)]
isl_qpolynomial_fold_opt_on_domain: fix typo

14 years agoisl_pw_*_eval: fix handling of empty input
Sven Verdoolaege [Mon, 3 May 2010 16:57:18 +0000 (18:57 +0200)]
isl_pw_*_eval: fix handling of empty input

14 years agoadd isl_basic_set_move_dims
Sven Verdoolaege [Sun, 2 May 2010 17:57:47 +0000 (19:57 +0200)]
add isl_basic_set_move_dims

14 years agoexport isl_qpolynomial_sub
Sven Verdoolaege [Sun, 2 May 2010 16:17:30 +0000 (18:17 +0200)]
export isl_qpolynomial_sub

14 years agoadd isl_qpolynomial_get_dim
Sven Verdoolaege [Sun, 2 May 2010 16:11:57 +0000 (18:11 +0200)]
add isl_qpolynomial_get_dim

14 years agoisl_map_transitive_closure: coalesce input before checking closedness of input
Sven Verdoolaege [Tue, 4 May 2010 06:10:12 +0000 (08:10 +0200)]
isl_map_transitive_closure: coalesce input before checking closedness of input

14 years agoadd map_lex_*_first
Sven Verdoolaege [Sun, 2 May 2010 08:14:37 +0000 (10:14 +0200)]
add map_lex_*_first

14 years agoisl_map_lex_le: use one basic set less in result
Sven Verdoolaege [Sat, 1 May 2010 17:11:12 +0000 (19:11 +0200)]
isl_map_lex_le: use one basic set less in result

14 years agoisl_stream: accept lexicographic operators
Sven Verdoolaege [Sat, 1 May 2010 17:08:46 +0000 (19:08 +0200)]
isl_stream: accept lexicographic operators

14 years agoisl_map_transitive_closure: check if input is closed already
Sven Verdoolaege [Wed, 28 Apr 2010 21:45:49 +0000 (23:45 +0200)]
isl_map_transitive_closure: check if input is closed already

14 years agoadd isl_printer_flush
Sven Verdoolaege [Sat, 24 Apr 2010 15:43:32 +0000 (17:43 +0200)]
add isl_printer_flush

14 years agoisl_map_read: parse parametric Omega input
Sven Verdoolaege [Wed, 28 Apr 2010 14:26:27 +0000 (16:26 +0200)]
isl_map_read: parse parametric Omega input

14 years agoisl_map_read: fix typo
Sven Verdoolaege [Wed, 28 Apr 2010 14:26:01 +0000 (16:26 +0200)]
isl_map_read: fix typo

14 years agoisl_convex_hull.c: is_bound: any inequality is a bound on an empty set
Sven Verdoolaege [Wed, 28 Apr 2010 09:58:32 +0000 (11:58 +0200)]
isl_convex_hull.c: is_bound: any inequality is a bound on an empty set

14 years agoisl_convex_hull.c: add_bounds: propagate errors from add_bound
Sven Verdoolaege [Wed, 28 Apr 2010 09:55:44 +0000 (11:55 +0200)]
isl_convex_hull.c: add_bounds: propagate errors from add_bound

14 years agodocument isl_map_reverse
Sven Verdoolaege [Sun, 25 Apr 2010 13:38:00 +0000 (15:38 +0200)]
document isl_map_reverse

14 years agoisl_stream_next_token: terminate string tokens
Sven Verdoolaege [Sat, 24 Apr 2010 09:46:15 +0000 (11:46 +0200)]
isl_stream_next_token: terminate string tokens

14 years agoisl_map_transitive_closure: treat equality as pair of ineq for mixed constraints
Sven Verdoolaege [Fri, 23 Apr 2010 21:45:01 +0000 (23:45 +0200)]
isl_map_transitive_closure: treat equality as pair of ineq for mixed constraints

14 years agoisl_map_transitive_closure, omega-like: only use ?-closure if result is exact
Sven Verdoolaege [Wed, 21 Apr 2010 13:53:01 +0000 (15:53 +0200)]
isl_map_transitive_closure, omega-like: only use ?-closure if result is exact

14 years agoisl_map_transitive_closure: use simple hull in omega-like implementation
Sven Verdoolaege [Tue, 20 Apr 2010 22:05:02 +0000 (00:05 +0200)]
isl_map_transitive_closure: use simple hull in omega-like implementation

14 years agoisl_map_transitive_closure: try and compute closure incrementally
Sven Verdoolaege [Fri, 16 Apr 2010 15:36:29 +0000 (17:36 +0200)]
isl_map_transitive_closure: try and compute closure incrementally

14 years agoisl_map_coalesce: allow wrapping in sets that stick out in different directions
Sven Verdoolaege [Sun, 18 Apr 2010 15:50:05 +0000 (17:50 +0200)]
isl_map_coalesce: allow wrapping in sets that stick out in different directions

Before, we would only wrap in sets that extend beyond exactly
one facet of a given set and such that the wrapped in set itself
has a facet that is adjacent to this facet.
We now extend this process in several ways.
First, the wrapped-in set is allowed to extend beyond several facets.
Second, the wrapped-in set need not have facets adjacent to these facets.
It is sufficient that the adjacent facets are valid for the wrapped-in set.
Finally, the wrapped-in set is allowed to be of a lower dimension.

14 years agoisl_map_coalesce: allowing cutting equalities in adjacent facet
Sven Verdoolaege [Sun, 18 Apr 2010 16:37:56 +0000 (18:37 +0200)]
isl_map_coalesce: allowing cutting equalities in adjacent facet

From the start, we have been very careful not to allow any cutting
equalities anywhere.  However, it makes sense to wrap in a piece
of a hyperplane adjacent to a facet, even if this piece is
lower-dimensional.

14 years agoadd some more coalescing test cases
Sven Verdoolaege [Thu, 22 Apr 2010 06:42:32 +0000 (08:42 +0200)]
add some more coalescing test cases

14 years agoisl_basic_map_gist: be more aggressive in removing constraints
Sven Verdoolaege [Fri, 23 Apr 2010 10:00:58 +0000 (12:00 +0200)]
isl_basic_map_gist: be more aggressive in removing constraints

In particular, detect equalities in intersection of input and context
and check for each constraint if negating it would lead to a contradiction.

14 years agoisl_stream: accept string tokens
Sven Verdoolaege [Thu, 22 Apr 2010 05:50:49 +0000 (07:50 +0200)]
isl_stream: accept string tokens

14 years agoisl_tab_rollback: restore rows that are no longer marked redundant
Sven Verdoolaege [Thu, 22 Apr 2010 11:07:22 +0000 (13:07 +0200)]
isl_tab_rollback: restore rows that are no longer marked redundant

When a row is marked redundant, it may have a negative (but strictly
larger than -1) sample value.  When undoing this marking, we need
to make sure the sample value is restored to a non-negative value.

14 years agodoc: document simple hull
Sven Verdoolaege [Wed, 21 Apr 2010 15:15:51 +0000 (17:15 +0200)]
doc: document simple hull

14 years agodoc: emphasize that we are dealing with integer sets
Sven Verdoolaege [Wed, 21 Apr 2010 15:11:29 +0000 (17:11 +0200)]
doc: emphasize that we are dealing with integer sets

14 years agoisl_transitive_closure.c: path_along_delta: only avoid splitting off identity
Sven Verdoolaege [Wed, 21 Apr 2010 11:40:26 +0000 (13:40 +0200)]
isl_transitive_closure.c: path_along_delta: only avoid splitting off identity

Commit 39345fc (isl_transitive_closure.c: path_along_delta: try and avoid
splitting off identity) attempted to avoid splitting off the identity mapping.
However, it would only check if relaxing the length to zero would
not introduce any extra elements.  The path may have constraints
on the parameters, though, and so we may actually be removing elements.
This means that we need to check for equality with the identity relation.
Perhaps this makes the whole optimization pointless.

14 years agoisl_map_transitive_closure: compute divs of input
Sven Verdoolaege [Tue, 20 Apr 2010 21:44:38 +0000 (23:44 +0200)]
isl_map_transitive_closure: compute divs of input

14 years agoisl_map_compute_divs: make sure result is gaussed and finalized
Sven Verdoolaege [Wed, 21 Apr 2010 15:42:24 +0000 (17:42 +0200)]
isl_map_compute_divs: make sure result is gaussed and finalized

In particular, when the variables in the input can be compressed,
basic_set_append_equalities should gauss and finalize the result
of adding the equalities back in.

14 years agoisl_printer_print_pw_qpolynomial: properly print constraints in C format
Sven Verdoolaege [Wed, 21 Apr 2010 11:37:47 +0000 (13:37 +0200)]
isl_printer_print_pw_qpolynomial: properly print constraints in C format

In particular, use an explicit multiplication in affine expressions.

14 years agoisl_pip and isl_cat: terminate isl_arg array with ISL_ARG_END
Sven Verdoolaege [Mon, 19 Apr 2010 15:56:54 +0000 (17:56 +0200)]
isl_pip and isl_cat: terminate isl_arg array with ISL_ARG_END

On most systems, leaving it out apparently just happens to work,
but not so on MacOS X.

Problem reported and analyzed by Tomofumi Yuki <yuki@cs.colostate.edu>

14 years agodoc: document setting and getting of dimension names
Sven Verdoolaege [Mon, 19 Apr 2010 09:27:52 +0000 (11:27 +0200)]
doc: document setting and getting of dimension names

14 years agodoc: document *_get_dim functions
Sven Verdoolaege [Mon, 19 Apr 2010 09:18:42 +0000 (11:18 +0200)]
doc: document *_get_dim functions

14 years agoisl_map_convex_hull: handle non full-dimensional pairs of basic sets
Sven Verdoolaege [Mon, 19 Apr 2010 08:53:13 +0000 (10:53 +0200)]
isl_map_convex_hull: handle non full-dimensional pairs of basic sets

14 years agoisl_convex_hull.c: modulo_affine_hull: drop redundant argument
Sven Verdoolaege [Mon, 19 Apr 2010 08:38:54 +0000 (10:38 +0200)]
isl_convex_hull.c: modulo_affine_hull: drop redundant argument

14 years agoisl_convex_hull.c: convex_hull_pair: skip direction change if result is bounded
Sven Verdoolaege [Mon, 19 Apr 2010 07:23:55 +0000 (09:23 +0200)]
isl_convex_hull.c: convex_hull_pair: skip direction change if result is bounded

14 years agoisl_printer_print_basic_set: fix up printing to string printer
Sven Verdoolaege [Sun, 18 Apr 2010 19:55:05 +0000 (21:55 +0200)]
isl_printer_print_basic_set: fix up printing to string printer

In particular, only print prefix and suffix (and call strlen on them)
if they are not NULL.

Problem reported by Tomofumi Yuki <yuki@cs.colostate.edu>

14 years agoadd isl_set_neg and isl_set_sum
Sven Verdoolaege [Sat, 17 Apr 2010 15:49:42 +0000 (17:49 +0200)]
add isl_set_neg and isl_set_sum

14 years agoisl_transitive_closure.c: fix documentation of construct_component
Sven Verdoolaege [Fri, 16 Apr 2010 15:36:07 +0000 (17:36 +0200)]
isl_transitive_closure.c: fix documentation of construct_component

14 years agoisl_map_coalesce: make sure result still contains set after wrapping in a facet
Sven Verdoolaege [Thu, 15 Apr 2010 18:30:48 +0000 (20:30 +0200)]
isl_map_coalesce: make sure result still contains set after wrapping in a facet

14 years agoisl_map_transitive_closure: Floyd-Warshall: properly keep track of current group
Sven Verdoolaege [Thu, 15 Apr 2010 14:47:35 +0000 (16:47 +0200)]
isl_map_transitive_closure: Floyd-Warshall: properly keep track of current group

14 years agoisl_map_transitive_closure: use Floyd-Warshall on disjoint domains and ranges
Sven Verdoolaege [Wed, 14 Apr 2010 10:25:19 +0000 (12:25 +0200)]
isl_map_transitive_closure: use Floyd-Warshall on disjoint domains and ranges

14 years agoisl_transitive_closure.c: extract out isl_set_overlaps
Sven Verdoolaege [Thu, 15 Apr 2010 09:09:37 +0000 (11:09 +0200)]
isl_transitive_closure.c: extract out isl_set_overlaps

14 years agoisl_map_transitive_closure: project out length on each component separately
Sven Verdoolaege [Wed, 14 Apr 2010 11:10:50 +0000 (13:10 +0200)]
isl_map_transitive_closure: project out length on each component separately

There is no need to keep track of the length over multiple components.

14 years agoisl_transitive_closure.c: construct_component: don't include identity in result
Sven Verdoolaege [Wed, 14 Apr 2010 11:00:18 +0000 (13:00 +0200)]
isl_transitive_closure.c: construct_component: don't include identity in result

14 years agoisl_map_transitive_closure: don't add length parameter
Sven Verdoolaege [Wed, 14 Apr 2010 10:39:56 +0000 (12:39 +0200)]
isl_map_transitive_closure: don't add length parameter

Just project out the final coordinates, intead of equating the difference
to a parameter and then projecting out the difference.

14 years agodoc: fix typos
Sven Verdoolaege [Thu, 15 Apr 2010 09:12:53 +0000 (11:12 +0200)]
doc: fix typos

14 years agoisl_set_gist: make context argument an isl_set for consistency
Sven Verdoolaege [Tue, 13 Apr 2010 17:41:50 +0000 (19:41 +0200)]
isl_set_gist: make context argument an isl_set for consistency

14 years agoisl_map_transitive_closure: coalesce input map
Sven Verdoolaege [Tue, 13 Apr 2010 08:07:14 +0000 (10:07 +0200)]
isl_map_transitive_closure: coalesce input map

14 years agoisl_transitive_closure.c: construct_component: always include identity
Sven Verdoolaege [Tue, 13 Apr 2010 07:54:17 +0000 (09:54 +0200)]
isl_transitive_closure.c: construct_component: always include identity

Commit e06f258 (isl_map_transitive_closure: break early if input map
doesn't compose with itself) added a special case to construct_component,
but neglected to include the identity map in the result.

14 years agodoc: cite Omega library documentation on computation of underapproximations
Sven Verdoolaege [Tue, 13 Apr 2010 07:31:58 +0000 (09:31 +0200)]
doc: cite Omega library documentation on computation of underapproximations

14 years agoadd isl_stream_read_map
Sven Verdoolaege [Tue, 13 Apr 2010 07:30:02 +0000 (09:30 +0200)]
add isl_stream_read_map

14 years agoisl_arg.h: add missing include
Sven Verdoolaege [Tue, 13 Apr 2010 07:29:38 +0000 (09:29 +0200)]
isl_arg.h: add missing include

14 years agoisl_basic_map_move_dims: normalize equalities
Sven Verdoolaege [Sun, 11 Apr 2010 11:36:38 +0000 (13:36 +0200)]
isl_basic_map_move_dims: normalize equalities