solution --> ( comment quastgroup ) quastgroup --> quast quast --> ( list matrix ) |( if vector quastgroup quastgroup ) |() matrix --> vectorlist vectorlist --> vector vectorlist | void vector --> #[ coefficientlist ] coefficientlist --> coeff coefficientlist | void coefficient --> INTEGER | INTEGER / INTEGERExample: Given the following function
if j-n-6 >= 0 t(i,j) = i-1/2*j+1/2*n+2 else t(i,j) = i-1the representation as quast yields:
( ( any comment ) (if #[ 0 1 0 -1 -6 ] (list #[ 2/2 -1/2 0/2 1/2 4/2 ] ) (list #[ 1 0 0 0 -1 ] ) ) )where the additional information is needed, that the first two entries of each vector identify loop indices (i,j), the following two structure parameters (m,n) and the last one the constant part.
This gives the schedule of one statement.
1 2 2 1 ( ( Schedule for statement 1 ) (if #[ 0 1 0 -1 -6 ] (list #[ 2/2 -1/2 0/2 1/2 4/2 ] ) (list #[ 1 0 0 0 -1 ] ) ) ) #Andreas Dischinger