# CLooG -> CLooG
# This is an automatic dump of a CLooG input file from a CloogProgram data
# structure. WARNING: it is highly dangerous and MAY be correct ONLY if
# - it has been dumped before loop generation.
# - option -noscalars is used (it removes scalar dimensions otherwise)
# - option -l is at least the original scattering dimension number
# ASK THE AUTHOR IF YOU *NEED* SOMETHING MORE ROBUST
# Language: C
c

# Context (3 parameter(s)):
4 5
1    -1     0     0 	4
1     1     0     0     0
1     0    -1     0 	4
1     0     1     0     0
1 # Parameter name(s)
T_2 T_67 T_66 

# Statement number:
2

# Iteration domain of statement 1.
2

2 6
1    -1     1     0     0    -1 
1     1     0     0     0     0

2 6
1    -1     0    -1     0     0
1     1     0     0     0     0
0 0 0 # For future options.

# Iteration domain of statement 2.
2

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

3 6
1    -1     0     1     0    -1
1     1     0     0     0     0
1    -1     0     0     1     0 
0 0 0 # For future options.

1 # Iterator name(s)
scat_0 scat_1 scat_2 git_0 

# No scattering functions.
0

