
On Mon, Aug 18, 2008 at 10:25:09PM +0200, Albert Cohen wrote:
A generic "gist" should not restrict in any way the polyhedron to be simplified w.r.t. the context polyhedron (both could be unions, in fact). So your example makes perfect sense, but maybe Skimo had stg else in mind?
I thought that's how you described the problem, and that's IIRC how it is used in CLooG, but sure, you can do it more generally.
{ A >= 0 }, what do you consider simpler?
Possibility 1: { A <= 0 } Possibility 2: { A = 0 }.
I asked the same question on the polylib mailing list many years ago but got no answer.
Strange.
I did not check what the PolyLib or Omega do, but {A=0} whould make more sense although it may cost more to achieve. We do not need to work on integer points only for this simplification, though, and I
Why are you talking about integer points?
don't think the PolyLib implements more than a bunch of special cases here (but I'm not at all familiar with that code).
There's no special cases in the PolyLib implementation that I'm aware of.
I see. However, I am interested in understanding the real needs of Cloog independently from what PolyLib does.
It's hard to define formally,
It's defined in section 4.8 of PI-785 as the largest set C such that C \cap B = A \cap B (where A is the original set and B is the context). So, if you use this definition, it should return { A <= 0 }. However, if you give it { A = 0 } as the original set, PolyLib will or at least used to return { A = 0 }. I don't think I've ever fixed this, given that there was effectively zero interest.
As to CLooG, IMHO, it doesn't really matter which of the two you give, although to a human reader, { A = 0 } may be more intuitive.
skimo