isl_basic_set_multiplicative_call: check for empty unbounded inputs
commite3faaba03e438f97a95d3198ea212e06d803bf07
authorSven Verdoolaege <skimo@kotnet.org>
Fri, 14 Oct 2016 09:00:25 +0000 (14 11:00 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Tue, 21 Mar 2017 13:45:55 +0000 (21 14:45 +0100)
tree17f6622d4dffd1f60d4d5d4c0f4cda3e2b623940
parentb15427f62fc2006cbd80f438804aa4d9694227e9
isl_basic_set_multiplicative_call: check for empty unbounded inputs

A rationally unbounded set may still be void of any integer points.
isl_basic_set_multiplicative_call would produce an infinite polynomial
on the parameter domain of this empty input.  While this is technically
correct, it is somewhat confusing.  Check whether the input is empty
such that a zero polynomial is returned in case of empty input instead.

The explicit check for empty domains also allows the subsequent
projection onto the parameter space to drop irrelevant constraints.
In particular, isl_basic_map_project_out only drops (seemingly)
irrelevant constraints if the input is known to be non-empty
as otherwise the "irrelevant" constraints may actually be the ones
that cause the input to be empty.

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