2 #ifndef _STATIC_BITSEQUENCE_SDARRAY_H
3 #define _STATIC_BITSEQUENCE_SDARRAY_H
6 #include <static_bitsequence.h>
9 class static_bitsequence_sdarray: public static_bitsequence {
12 static_bitsequence_sdarray();
15 static_bitsequence_sdarray(uint * buff, uint len);
16 static_bitsequence_sdarray(uint * buff, uint len, uint);
17 ~static_bitsequence_sdarray();
19 virtual uint select1(uint i);
20 virtual uint rank1(uint i);
21 virtual uint select_next1(uint i);
22 inline uint select(uint i) {
23 if(i>ones || i==0) return -1;
25 return selects3_select(&this->sd,i);
30 inline uint rank(uint i) {
33 return selects3_rank(&this->sd, i);
38 inline uint select_next(uint i) {
39 return selects3_selectnext(&this->sd,i);
44 static static_bitsequence_sdarray * load(FILE * fp);