1domain: "[M, N, O] -> { S3[i0, i1, i2] : i0 >= 2 and i0 <= -1 + O and i1 >= 2 and i1 <= -1 + N and i2 >= 2 and i2 <= -1 + M; S2[i0, i1, i2] : i0 >= 2 and i0 <= -1 + O and i1 >= 2 and i1 <= -1 + N and i2 >= 1 and i2 <= M; S1[i0, i1, i2] : i0 >= 2 and i0 <= -1 + O and i1 >= 2 and i1 <= -1 + N and i2 >= 1 and i2 <= M }"
2child:
3  context: "[M, N, O] -> { [] }"
4  child:
5    schedule: "[M, N, O] -> [{ S3[i0, i1, i2] -> [(i0)]; S2[i0, i1, i2] -> [(i0)]; S1[i0, i1, i2] -> [(i0)] }]"
6    options: "[M, N, O] -> { separate[i0] }"
7    child:
8      schedule: "[M, N, O] -> [{ S3[i0, i1, i2] -> [(2i1)]; S2[i0, i1, i2] -> [(-1 + 2i1)]; S1[i0, i1, i2] -> [(-1 + 2i1)] }]"
9      options: "[M, N, O] -> { separate[i0] }"
10      child:
11        sequence:
12        - filter: "[M, N, O] -> { S2[i0, i1, i2]; S1[i0, i1, i2] }"
13          child:
14            schedule: "[M, N, O] -> [{ S2[i0, i1, i2] -> [(i2)]; S1[i0, i1, i2] -> [(i2)] }]"
15            options: "[M, N, O] -> { separate[i0] }"
16            child:
17              sequence:
18              - filter: "[M, N, O] -> { S1[i0, i1, i2] }"
19              - filter: "[M, N, O] -> { S2[i0, i1, i2] }"
20        - filter: "[M, N, O] -> { S3[i0, i1, i2] }"
21          child:
22            schedule: "[M, N, O] -> [{ S3[i0, i1, i2] -> [(i2)] }]"
23            options: "[M, N, O] -> { separate[i0] }"
24