# Language: C
c

# Context:
1

0 3 0 0 0 1

1 # Parameter name(s)
t 
# Statement number:
1

# Iteration domain of statement 1.
1

6 6 2 0 1 1
0     1     0    16    -1     0
0     0     1     0    -1     0
1     1     0     0     0     0
1    -1     0     0     0    99
1     0     0     0     1     0
1     0     0     0    -1    15

0 0 0 # For future options.


1 # Iterator name(s)

i0 i1

# No scattering functions.
0
