projects
/
SXSI
/
XMLTree.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed construction space
[SXSI/XMLTree.git]
/
libcds
/
src
/
static_bitsequence
/
static_bitsequence.cpp
diff --git
a/libcds/src/static_bitsequence/static_bitsequence.cpp
b/libcds/src/static_bitsequence/static_bitsequence.cpp
index
65de9c4
..
e4740ea
100644
(file)
--- a/
libcds/src/static_bitsequence/static_bitsequence.cpp
+++ b/
libcds/src/static_bitsequence/static_bitsequence.cpp
@@
-26,8
+26,9
@@
uint static_bitsequence::rank0(uint i) {
}
uint static_bitsequence::rank1(uint i) {
}
uint static_bitsequence::rank1(uint i) {
- if(i>=len) return ones;
- if(ones==0) return -1;
+ if(i>=len) return (uint)-1;
+ if(ones==0) return 0;
+ if(ones==len) return i+1;
uint ini = 1;
uint fin = ones;
while(ini<fin) {
uint ini = 1;
uint fin = ones;
while(ini<fin) {
@@
-44,8
+45,9
@@
uint static_bitsequence::rank1(uint i) {
}
uint static_bitsequence::select0(uint i) {
}
uint static_bitsequence::select0(uint i) {
- if(i>len-ones) return
len
;
+ if(i>len-ones) return
-1
;
if(i==0) return -1;
if(i==0) return -1;
+ if(ones==0) return i-1;
uint ini = 0;
uint fin = len-1;
while(ini<fin) {
uint ini = 0;
uint fin = len-1;
while(ini<fin) {
@@
-60,8
+62,9
@@
uint static_bitsequence::select0(uint i) {
}
uint static_bitsequence::select1(uint i) {
}
uint static_bitsequence::select1(uint i) {
- if(i>ones) return len;
- if(i==0) return 0;
+ if(i>ones) return -1;
+ if(i==0) return -1;
+ if(ones==len) return i-1;
uint ini = 0;
uint fin = len-1;
while(ini<fin) {
uint ini = 0;
uint fin = len-1;
while(ini<fin) {
@@
-98,7
+101,8
@@
static_bitsequence * static_bitsequence::load(FILE * fp) {
switch(r) {
case RRR02_HDR: return static_bitsequence_rrr02::load(fp);
case BRW32_HDR: return static_bitsequence_brw32::load(fp);
switch(r) {
case RRR02_HDR: return static_bitsequence_rrr02::load(fp);
case BRW32_HDR: return static_bitsequence_brw32::load(fp);
+ case RRR02_LIGHT_HDR: return static_bitsequence_rrr02_light::load(fp);
+ case SDARRAY_HDR: return static_bitsequence_sdarray::load(fp);
}
return NULL;
}
}
return NULL;
}
-