X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=libcds%2Fsrc%2Fstatic_bitsequence%2Fsdarray.h;fp=libcds%2Fsrc%2Fstatic_bitsequence%2Fsdarray.h;h=a6d28b6dc08036f527b5a86d258edaef0de41004;hb=bbeeb03980ddf51c0f32fd3c42321dc9ef708c27;hp=0000000000000000000000000000000000000000;hpb=6a9117a97674437c9fe00b099c40ccb61d45d704;p=SXSI%2FXMLTree.git diff --git a/libcds/src/static_bitsequence/sdarray.h b/libcds/src/static_bitsequence/sdarray.h new file mode 100644 index 0000000..a6d28b6 --- /dev/null +++ b/libcds/src/static_bitsequence/sdarray.h @@ -0,0 +1,48 @@ + +#ifndef SDARRAY_H +#define SDARRAY_H + +#include +#include +#include +#include +#include + +typedef struct { + int n,m; + int size; + uchar *buf; + uint *lp; + uint *sl; + ushort *ss; + uint ss_len, sl_len; + uint *p; +} selectd2; + +typedef struct { + int n,m,d; + int size; + uchar *hi; + uint *low; + selectd2 *sd0,*sd1; + uint hi_len, low_len; + +} selects3; + +int selects3_construct(selects3 *select, int n, uint *buf); +int selects3_select(selects3 *select, int i); +int selects3_rank(selects3 *select, int i); + +int setbit(uint *B, int i,int x); +int selectd2_save(selectd2 * s, FILE * fp); +int selects3_save(selects3 * s, FILE * fp); + +int selectd2_load(selectd2 * s, FILE * fp); +int selects3_load(selects3 * s, FILE * fp); + +void selectd2_free(selectd2 * s); +void selects3_free(selects3 * s); + + +#endif +