###############################################################################
#
# Problem  : LU Decomposition + 
# Date     : 2005. 4. 25
# Author   : DaeGon Kim
#
###############################################################################

### Context -------------------------------------------------------------------
   c # language is c

   1          # Context
   1 3            # 1 lines and 3 coloumns
   #  N1   1
   1   1  -2      # N > 1

   1              # 1 - Specify the names of parameters
   N1             # parameter names

### ----------------------------------------------------------------------------

### Statements -----------------------------------------------------------------
   2                             # number of statements
   # first statement
   1
   7    6
   # Eq/In  J       J       K       N1      Constants
    1       1       0       0       0       -1       # 1 <= I
    1       0       1       0       0       -1       # 1 <= J
    1       0       0       1       0       0        # 0 <= K
    1      -1       0       0       1       0        # I <= N1
    1       0      -1       0       1       0        # J <= N1
    1       1       0      -1       0       0        # K <= I
    1       0       1      -1       0       0        # K <= J
    0       0       0
   
   # second statement
   1
   6    6
   # Eq/In  I       J       K       N1      Constants
    1       1       0       0       0       -1       # 1 <= I
    1       0       1       0       0       -1       # 1 <= J
    1       0       0       1       0       0        # 0 <= K
    1       0      -1       0       1       0        # J <= N1
    1      -1       1       0       0       0        # I <= J
    1      -1       1      -2       0       0        # 2K <= J-I
    0       0       0

    1                # Iterators
    J1  J2  J3       # Iterators name

### ----------------------------------------------------------------------------

    
### Scattering Functions -------------------------------------------------------

    2    # Number of scattering functions

    # First statement
    3 9 
    #   I1  I2  I3  I   J   K   N1  1
    0   1   0   0  -1  -1  -1   0   0    # I1 = I+J+K
    0   0   1   0  -1   0   0   0   0    # I2 = I
    0   0   0   1   0  -1   0   0   0    # I3 = J

    # Second statement
    3 9
    #   I1  I2  I3  I   J   K   N1  1
    0   1   0   0   2  -2   1   0   0     # I1 = -2I + 2J - K
    0   0   1   0  -1   0   0   0   0     # I2 = I
    0   0   0   1   0  -1   0   0   0     # I3 = J


    1          # Specify scattering dimension names
    I1  I2  I3 # Scattering dimension names

### ----------------------------------------------------------------------------



