Hello,
First off, let me express my gratitude for all the work put into isl. It really is a very impressive project.
I'm using isl through islpy, where I am attempting to define a UnionMap that uses a parameter as the right-hand-side argument to modulos, however, it seems that this is not possible as it is rejected.
This works:
>>> isl.UnionMap.read_from_str(isl.Context(), "[A] -> {S0[a] -> S1[(a+1)%3]}")
UnionMap("[A] -> { S0[a] -> S1[o0] : (-1 - a + o0) mod 3 = 0 and 0 <= o0 <= 2 }")
But this does not:
>>> isl.UnionMap.read_from_str(isl.Context(), "[A] -> {S0[a] -> S1[(a+1) mod A]}")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
islpy._isl.Error: call to isl_union_map_read_from_str failed: syntax error in /project/isl/isl_stream.c:149
I'm wondering if this is a limitation of isl, or if there is some workaround I can use to achieve the desired formula. Thank you for any help in advance and excuse my formatting, as I am not too familiar with dev mailing lists.
Cheers,
Pedro