# CLooG -> CLooG
# This is an automatic dump of a CLooG input file from a CloogInput data
# structure.

# Language: C
c

# Context:
0 2

0 # Parameter name(s)

# Statement number:
3

# Iteration domain of statement 5 (ND_1IP_ED_0_0_V_0).
1

3 4
0     0     1    -1
1     1     0     0
1    -1     0     9

0 0 0 # For future options.

# Iteration domain of statement 6 (ND_1OP_ED_3_0_V_1).
1

3 4
0     0     1    -1
1     1     0     0
1    -1     0     9

0 0 0 # For future options.

# Iteration domain of statement 7 (ND_1).
1

3 4
0     0     1    -1
1     1     0     0
1    -1     0     9

0 0 0 # For future options.


0 # Iterator name(s)

# --------------------- SCATTERING --------------------
3 # Scattering functions

# Scattering of statement 5 (ND_1IP_ED_0_0_V_0).
1

3 7
0     0     0     1     0     0    -6
0     0     1     0     0    -1     0
0     1     0     0    -1     0     0

# Scattering of statement 6 (ND_1OP_ED_3_0_V_1).
1

3 7
0     0     0     1     0     0   -11
0     0     1     0     0    -1     0
0     1     0     0    -1     0     0

# Scattering of statement 7 (ND_1).
1

3 7
0     0     0     1     0     0    -8
0     0     1     0     0    -1     0
0     1     0     0    -1     0     0

1 # Scattering dimension name(s)
c0 c1 c2 
