[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
03-fyi-closure-over-bits.patch
From: |
Akim Demaille |
Subject: |
03-fyi-closure-over-bits.patch |
Date: |
Wed, 28 Nov 2001 15:51:41 +0100 |
Index: ChangeLog
from Akim Demaille <address@hidden>
* src/closure.c (closure): Instead of looping over word in array
then bits in words, loop over bits in array.
Index: src/closure.c
--- src/closure.c Tue, 27 Nov 2001 23:45:48 +0100 akim
+++ src/closure.c Tue, 27 Nov 2001 23:53:51 +0100 akim
@@ -242,7 +242,8 @@
/* Index over RULESET. */
int r;
- int itemno;
+ /* A bit index over RULESET. */
+ int b;
if (trace_flag)
{
@@ -271,27 +272,22 @@
ruleno = 0;
itemsetsize = 0;
c = 0;
- for (r = 0; r < rulesetsize; ++r)
+ for (b = 0; b < rulesetsize * BITS_PER_WORD; ++b)
{
- int b;
-
- for (b = 0; b < BITS_PER_WORD; b++)
+ if (BITISSET (ruleset, b))
{
- if (ruleset[r] & (1 << b))
+ int itemno = rule_table[ruleno].rhs;
+ while (c < n && core[c] < itemno)
{
- itemno = rule_table[ruleno].rhs;
- while (c < n && core[c] < itemno)
- {
- itemset[itemsetsize] = core[c];
- itemsetsize++;
- c++;
- }
- itemset[itemsetsize] = itemno;
+ itemset[itemsetsize] = core[c];
itemsetsize++;
+ c++;
}
-
- ruleno++;
+ itemset[itemsetsize] = itemno;
+ itemsetsize++;
}
+
+ ruleno++;
}
while (c < n)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- 03-fyi-closure-over-bits.patch,
Akim Demaille <=