}
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 static_bitsequence::select0(uint i) {
- if(i>len-ones) return len;
+ if(i>len-ones) return -1;
if(i==0) return -1;
+ if(ones==0) return i-1;
uint ini = 0;
uint fin = len-1;
while(ini<fin) {
}
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) {
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;
}
-