rbyd-rr: Renamed lfsr_rbyd_p_* -> lfsr_p_*
I didn't notice the inconsistency at first, but with the addition of the diverging state machine, we have to subcomponents in lfsr_rbyd_appendattr with different naming conventions: - lfsr_rbyd_p_* - the p-alt fifo - lfsr_d_* - the diverging state machine One of these needs to change, and lfsr_rbyd_d_isdiverged is such a keyful...
This commit is contained in:
@@ -2663,7 +2663,7 @@ typedef struct lfsr_alt {
|
||||
lfs_size_t jump;
|
||||
} lfsr_alt_t;
|
||||
|
||||
static int lfsr_rbyd_p_flush(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
||||
static int lfsr_p_flush(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
||||
lfsr_alt_t p[static 3],
|
||||
int count) {
|
||||
// write out some number of alt pointers in our queue
|
||||
@@ -2684,10 +2684,10 @@ static int lfsr_rbyd_p_flush(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int lfsr_rbyd_p_push(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
||||
static inline int lfsr_p_push(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
||||
lfsr_alt_t p[static 3],
|
||||
lfsr_tag_t alt, lfsr_srid_t weight, lfs_size_t jump) {
|
||||
int err = lfsr_rbyd_p_flush(lfs, rbyd, p, 1);
|
||||
int err = lfsr_p_flush(lfs, rbyd, p, 1);
|
||||
if (err) {
|
||||
return err;
|
||||
}
|
||||
@@ -2699,13 +2699,13 @@ static inline int lfsr_rbyd_p_push(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void lfsr_rbyd_p_pop(
|
||||
static inline void lfsr_p_pop(
|
||||
lfsr_alt_t p[static 3]) {
|
||||
memmove(p, p+1, 2*sizeof(lfsr_alt_t));
|
||||
p[2].alt = 0;
|
||||
}
|
||||
|
||||
static void lfsr_rbyd_p_recolor(
|
||||
static void lfsr_p_recolor(
|
||||
lfsr_alt_t p[static 3]) {
|
||||
// propagate a red edge upwards
|
||||
p[0].alt &= ~LFSR_TAG_R;
|
||||
@@ -2987,7 +2987,7 @@ trunk:;
|
||||
|
||||
weight += p[0].weight;
|
||||
jump = p[0].jump;
|
||||
lfsr_rbyd_p_pop(p);
|
||||
lfsr_p_pop(p);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3007,7 +3007,7 @@ trunk:;
|
||||
&lower_tag, &upper_tag);
|
||||
|
||||
// stitch together both trunks
|
||||
err = lfsr_rbyd_p_push(lfs, rbyd, p,
|
||||
err = lfsr_p_push(lfs, rbyd, p,
|
||||
LFSR_TAG_ALT(LFSR_TAG_LE, LFSR_TAG_B, d_tag),
|
||||
d_rid - (lower_rid - weight),
|
||||
jump);
|
||||
@@ -3085,7 +3085,7 @@ trunk:;
|
||||
alt = p[0].alt & ~LFSR_TAG_R;
|
||||
weight = p[0].weight;
|
||||
jump = p[0].jump;
|
||||
lfsr_rbyd_p_pop(p);
|
||||
lfsr_p_pop(p);
|
||||
|
||||
// prune unreachable root alts and red alts
|
||||
} else if (!p[0].alt || lfsr_tag_isred(alt)) {
|
||||
@@ -3133,7 +3133,7 @@ trunk:;
|
||||
p[0].alt, p[0].weight,
|
||||
&lower_rid, &upper_rid,
|
||||
&lower_tag, &upper_tag);
|
||||
lfsr_rbyd_p_recolor(p);
|
||||
lfsr_p_recolor(p);
|
||||
|
||||
// otherwise we need to point to the yellow alt and
|
||||
// prune later
|
||||
@@ -3156,7 +3156,7 @@ trunk:;
|
||||
p[0].alt, p[0].weight,
|
||||
&lower_rid, &upper_rid,
|
||||
&lower_tag, &upper_tag);
|
||||
lfsr_rbyd_p_recolor(p);
|
||||
lfsr_p_recolor(p);
|
||||
|
||||
branch = branch_;
|
||||
continue;
|
||||
@@ -3211,7 +3211,7 @@ trunk:;
|
||||
}
|
||||
|
||||
// push alt onto our queue
|
||||
err = lfsr_rbyd_p_push(lfs, rbyd, p,
|
||||
err = lfsr_p_push(lfs, rbyd, p,
|
||||
alt, weight, jump);
|
||||
if (err) {
|
||||
return err;
|
||||
@@ -3237,7 +3237,7 @@ trunk:;
|
||||
d_tag = lower_tag;
|
||||
|
||||
// flush any pending alts
|
||||
err = lfsr_rbyd_p_flush(lfs, rbyd, p, 3);
|
||||
err = lfsr_p_flush(lfs, rbyd, p, 3);
|
||||
if (err) {
|
||||
return err;
|
||||
}
|
||||
@@ -3330,18 +3330,18 @@ stem:;
|
||||
}
|
||||
|
||||
if (alt) {
|
||||
err = lfsr_rbyd_p_push(lfs, rbyd, p,
|
||||
err = lfsr_p_push(lfs, rbyd, p,
|
||||
alt, weight, branch);
|
||||
if (err) {
|
||||
return err;
|
||||
}
|
||||
|
||||
// introduce a red edge
|
||||
lfsr_rbyd_p_recolor(p);
|
||||
lfsr_p_recolor(p);
|
||||
}
|
||||
|
||||
// flush any pending alts
|
||||
err = lfsr_rbyd_p_flush(lfs, rbyd, p, 3);
|
||||
err = lfsr_p_flush(lfs, rbyd, p, 3);
|
||||
if (err) {
|
||||
return err;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user