141 |
new_itemsets (void) |
new_itemsets (void) |
142 |
{ |
{ |
143 |
int i; |
int i; |
|
int shiftcount; |
|
144 |
|
|
145 |
if (trace_flag) |
if (trace_flag) |
146 |
fprintf (stderr, "Entering new_itemsets, state = %d\n", |
fprintf (stderr, "Entering new_itemsets, state = %d\n", |
150 |
kernel_size[i] = 0; |
kernel_size[i] = 0; |
151 |
|
|
152 |
shift_symbol = XCALLOC (short, nsyms); |
shift_symbol = XCALLOC (short, nsyms); |
153 |
shiftcount = 0; |
nshifts = 0; |
154 |
|
|
155 |
for (i = 0; i < itemsetsize; ++i) |
for (i = 0; i < nitemset; ++i) |
156 |
{ |
{ |
157 |
int symbol = ritem[itemset[i]]; |
int symbol = ritem[itemset[i]]; |
158 |
if (symbol > 0) |
if (symbol > 0) |
159 |
{ |
{ |
160 |
if (!kernel_size[symbol]) |
if (!kernel_size[symbol]) |
161 |
{ |
{ |
162 |
shift_symbol[shiftcount] = symbol; |
shift_symbol[nshifts] = symbol; |
163 |
shiftcount++; |
nshifts++; |
164 |
} |
} |
165 |
|
|
166 |
kernel_base[symbol][kernel_size[symbol]] = itemset[i] + 1; |
kernel_base[symbol][kernel_size[symbol]] = itemset[i] + 1; |
167 |
kernel_size[symbol]++; |
kernel_size[symbol]++; |
168 |
} |
} |
169 |
} |
} |
|
|
|
|
nshifts = shiftcount; |
|
170 |
} |
} |
171 |
|
|
172 |
|
|
539 |
/* Find and count the active items that represent ends of rules. */ |
/* Find and count the active items that represent ends of rules. */ |
540 |
|
|
541 |
count = 0; |
count = 0; |
542 |
for (i = 0; i < itemsetsize; ++i) |
for (i = 0; i < nitemset; ++i) |
543 |
{ |
{ |
544 |
int item = ritem[itemset[i]]; |
int item = ritem[itemset[i]]; |
545 |
if (item < 0) |
if (item < 0) |