projects
/
archipelago
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
e252784
)
Allow LFSR to be used for sizes smaller than 2^3
author
Alex Pyrgiotis
<apyrgio@grnet.gr>
Mon, 25 Feb 2013 16:42:29 +0000
(18:42 +0200)
committer
Filippos Giannakos
<philipgian@grnet.gr>
Mon, 11 Mar 2013 09:52:32 +0000
(11:52 +0200)
xseg/peers/user/bench-lfsr.c
patch
|
blob
|
history
diff --git
a/xseg/peers/user/bench-lfsr.c
b/xseg/peers/user/bench-lfsr.c
index
aede3f7
..
1fce6ec
100644
(file)
--- a/
xseg/peers/user/bench-lfsr.c
+++ b/
xseg/peers/user/bench-lfsr.c
@@
-223,12
+223,11
@@
int lfsr_init(struct lfsr *lfsr, uint64_t size, uint64_t seed)
lfsr->limit = size;
lfsr->limit = size;
- //i has number of bits of size
- for (i = 0; size; i++)
- size = size >> 1;
+ //`i` has required number of bits for LFSR
+ for (i = 3; size >= (1UL << i); i++) {}
- //Too small or too big size to create an LFSR out of it
- if (i < 3 || i > 63)
+ //Will not create LFSR longer than 63 bits
+ if (i > 63)
return -1;
//The all ones state is illegal. Due to the fact that our seed is
return -1;
//The all ones state is illegal. Due to the fact that our seed is
@@
-240,8
+239,7
@@
int lfsr_init(struct lfsr *lfsr, uint64_t size, uint64_t seed)
lfsr->state = global_seed >> (31 - i);
else
lfsr->state = global_seed << (i - 31);
lfsr->state = global_seed >> (31 - i);
else
lfsr->state = global_seed << (i - 31);
- }
- else {
+ } else {
lfsr->state = seed;
}
lfsr->state = seed;
}