Welcome to namedisl’s documentation!¶

namedisl is a Python library for (name-based) polyhedral operations, based on Sven Verdoolaege’s isl.

Unlike in isl, names matter in namedisl. Observe:

>>> import namedisl as nisl
>>> print(nisl.make_set("{[i]: 0<=i<10}") & nisl.make_set("{[j]: 0<=j<10}"))
{ [i, j] : 0 <= i <= 9 and 0 <= j <= 9 }

I.e., since i and j have different names, they are considered different dimensions. This contrasts against the behavior of islpy (and upstream isl), which reason by dimension index and would consider i and j the same axis (in most cases).

Indices and tables¶