Simplification - gist operation

15 views
Skip to first unread message

Uday Reddy B

unread,
May 12, 2024, 9:47:38 AMMay 12
to Isl development, Uday Kumar Reddy Bondhugula

This is reg. the isl_basic_set_gist operation. Consider this for an example:

Set:  [p0, p1] -> { C0[i0, i1, i2, i3] : exists (e0: p0 = 0 and p1 = 0 and i0 = 0 and i1 = 0 and i3 >= 0 and i3 <= 1 and 4e0 <= -8 + 5i2 and e
0 >= -3 and e0 <= 2 and 4e0 >= -16 + 5i2) }

Context: [p0, p1] -> { C0[i0, i1, i2, i3] : p0 = 0 and p1 = 0 }

The isl_basic_set_gist on the above input fails as 'e0' in the set doesn't have an explicit representation. 
isl_map.c:9707: some src divs are unknown

A couple of things.

1) This appears to be expected behavior per the code, but the documentation on this is silent. 
2) The context and the set both have p0 = 0, p1 = 0, which can actually be eliminated and so one would expect the gist could be computed here as:

[p0, p1] -> { C0[i0, i1, i2, i3] : exists (e0: i0 = 0 and i1 = 0 and i3 >= 0 and i3 <= 1 and 4e0 <= -8 + 5i2 and e0 >= -3 and e0 <= 2 and 4e0 >= -16 + 5i2) }
?

(This is all with isl 0.25.)

-Uday

Sven Verdoolaege

unread,
May 12, 2024, 5:48:10 PMMay 12
to Uday Reddy B, Isl development, Uday Kumar Reddy Bondhugula
On Sun, May 12, 2024 at 07:17:21PM +0530, Uday K Bondhugula wrote:
> This is reg. the isl_basic_set_gist operation. Consider this for an example:
>
> Set: [p0, p1] -> { C0[i0, i1, i2, i3] : exists (e0: p0 = 0 and p1 = 0 and
> i0 = 0 and i1 = 0 and i3 >= 0 and i3 <= 1 and 4e0 <= -8 + 5i2 and e
> 0 >= -3 and e0 <= 2 and 4e0 >= -16 + 5i2) }
>
> Context: [p0, p1] -> { C0[i0, i1, i2, i3] : p0 = 0 and p1 = 0 }
>
> The isl_basic_set_gist on the above input fails as 'e0' in the set doesn't
> have an explicit representation.

Yeah... it was probably a mistake to expose isl_basic_set_gist.
I guess it can be made to accept proper existentially quantified variables.
I'll see if I can find some time next weekend.

skimo

Sven Verdoolaege

unread,
May 25, 2024, 10:02:17 AMMay 25
to Uday Reddy B, Isl development, Uday Kumar Reddy Bondhugula
On Sun, May 12, 2024 at 07:17:21PM +0530, Uday K Bondhugula wrote:
> This is reg. the isl_basic_set_gist operation. Consider this for an example:
>
> Set: [p0, p1] -> { C0[i0, i1, i2, i3] : exists (e0: p0 = 0 and p1 = 0 and
> i0 = 0 and i1 = 0 and i3 >= 0 and i3 <= 1 and 4e0 <= -8 + 5i2 and e
> 0 >= -3 and e0 <= 2 and 4e0 >= -16 + 5i2) }
>
> Context: [p0, p1] -> { C0[i0, i1, i2, i3] : p0 = 0 and p1 = 0 }
>
> The isl_basic_set_gist on the above input fails as 'e0' in the set doesn't
> have an explicit representation.
> isl_map.c:9707: some src divs are unknown

Try again with latest master.

skimo
Reply all
Reply to author
Forward
0 new messages