[PPL-devel] PPL and simplification of polyhedra

Sven Verdoolaege skimo at kotnet.org
Mon Aug 18 22:54:43 CEST 2008


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



More information about the PPL-devel mailing list