split parameter domains when convex hull operation drops lower or upper bounds
If the convex hull of a union of basic sets contains a line, typically
in the direction of a parameter, then this convex hull may not have
an upper or lower bound on some dimensions even if each of the basic
sets in the union does.
As a simple example, take the union of [n] -> { [0] }
and [n] -> { [x] : 0 <= x <= n }. Both sets clearly have
both a lower and an upper bound on the single domain dimension.
However, the convex hull of this union is [n] -> { [x] : x >= 0 },
which no longer has an upper bound on x.
This problem has probably been in CLooG since day one and has
only recently been reported by Uday Kumar Reddy <udayreddy@gmail.com>.
We can therefore assume that this situation is fairly rare.
Our current solution is to detect the situation where the input
of the convex hull operation has bounds on the current dimension,
but the output does not. If this happens, we split the parameter
space and recompute the convex hull on each of the pieces.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>