isl_*_eliminate: perform integer elimination
authorSven Verdoolaege <skimo@kotnet.org>
Tue, 17 Apr 2012 10:29:41 +0000 (12:29 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Wed, 11 Jul 2012 06:37:38 +0000 (08:37 +0200)
commitbaf22b7c81df6dbbd8855c261ce4722a1ed8f45f
treeebf834d1c179615855648fe6bd0e5785f5805783
parenta03eac2add666abd8ae3d5401687d2c6a1db83a8
isl_*_eliminate: perform integer elimination

The original code would perform the elimination "rationally" by
simply applying Fourier-Motzkin on them.  If the input
is an integer set or map, this could drop information on other dimensions.
For example, eliminating the second dimension of

        { [i, j] : i = 2 j }

would result in

        { [i, j] }

while it should result in

        { [i, j] : exists a : i = 2 a }

We now perform an integer elimination (on integer sets and maps).

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
isl_map_simplify.c
isl_test.c