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

# Language: C
c

# Context:
0 3

0 # Parameter name(s)

# Statement number:
6

# Iteration domain of statement 1 (Stmt_if.then).
1

3 4 1 0 0 1
1     1     0     0
1    -1     0  1023
1    -1     1  1024

0 0 0 # For future options.

# Iteration domain of statement 2 (Stmt_if.else).
1

3 4 1 0 0 1
1     1     0     0
1    -1     0  1023
1     1    -1 -1025

0 0 0 # For future options.

# Iteration domain of statement 3 (Stmt_if.end).
1

2 4 1 0 0 1
1     1     0     0
1    -1     0  1023

0 0 0 # For future options.

# Iteration domain of statement 1 (Stmt_if.then).
1

3 4 1 0 0 1
1     1     0     0
1    -1     0  1023
1    -1     1  1024

0 0 0 # For future options.

# Iteration domain of statement 2 (Stmt_if.else).
1

3 4 1 0 0 1
1     1     0     0
1    -1     0  1023
1     1    -1 -1025

0 0 0 # For future options.

# Iteration domain of statement 3 (Stmt_if.end).
1

2 4 1 0 0 1
1     1     0     0
1    -1     0  1023

0 0 0 # For future options.


0 # Iterator name(s)

# --------------------- SCATTERING --------------------
6 # Scattering functions

# Scattering of statement 1 (Stmt_if.then).
1

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

# Scattering of statement 2 (Stmt_if.else).
1

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

# Scattering of statement 3 (Stmt_if.end).
1

3 7 3 1 0 1
0     0     0     1     0     0    -2
0     0     1     0    -1     0     0
0     1     0     0     0     0     1

# Scattering of statement 1 (Stmt_if.then).
1

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

# Scattering of statement 2 (Stmt_if.else).
1

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

# Scattering of statement 3 (Stmt_if.end).
1

3 7 3 1 0 1
0     0     0     1     0     0    -2
0     1     0     0    -1     0     0
0     0     1     0     0     0     0

0 # Scattering dimension name(s)
