isl_tab_basic_map_partial_lexopt: split on parametric rows first
commit73bb2936d20bd25e42a3d4c7f0c4d38088b0aa31
authorSven Verdoolaege <sven.verdoolaege@gmail.com>
Wed, 27 Sep 2017 11:49:50 +0000 (27 13:49 +0200)
committerSven Verdoolaege <sven.verdoolaege@gmail.com>
Thu, 12 Oct 2017 20:59:22 +0000 (12 22:59 +0200)
tree066e2e934cd3816e305c349162ea658a39f4d56e
parentd7690d840e3230da3a9e8f3c8d1e83b69ee1ec54
isl_tab_basic_map_partial_lexopt: split on parametric rows first

If a tableau used for parametric integer programming contains
a purely parametric row with an indeterminate sign, then this
means that a solution only exists in the part of the context
where this constraint holds.  Such constraints should be
transferred to the context first such that they can be used
to more accurately determine the possible signs of other rows and
to possible avoid further splits.

Since isl-0.11.1-63-ga47882c4b5 (isl_basic_map_lexopt: preinitialize
domain, Tue Mar 12 17:23:49 2013 +0100), with further refinements
in isl-0.17.1-128-g8590c53694 (isl_*_lexopt: use actual domain of
input as initial context, Tue Jun 14 13:12:04 2016 +0200),
those constraints are already copied to the context in the input,
but isl_basic_map_foreach_lexopt does not perform this copying.
Furthermore, there may be linear combinations of the original
constraints that are purely parametric and that only appear
during the course of solving the PIP problem.

Requested-by: Philip Pfaffe <philip.pfaffe@gmail.com>
Tested-by: Philip Pfaffe <philip.pfaffe@gmail.com>
Signed-off-by: Sven Verdoolaege <sven.verdoolaege@gmail.com>
isl_tab_pip.c
isl_test.c