ignore libcds
[SXSI/XMLTree.git] / darray.h
1 #ifndef DARRAY_H_
2 #define DARRAY_H_
3
4 typedef unsigned char byte;
5 typedef unsigned short word;
6 typedef unsigned int dword;
7
8 #define OPT_NO_RANK (1<<30)
9
10
11 typedef dword pb;
12
13 #define logD 5
14 #define D (1<<logD)
15
16 #define logR 16
17 #define R1 (1<<logR)
18 #define logRR 10
19 //#define logRR 8
20 #define RR (1<<logRR)
21 #define logRRR 7
22 #define RRR (1<<logRRR)
23
24 typedef struct {
25   int n,m;
26   int size;
27   pb *buf;
28   dword *lp;
29   dword *sl;
30   word *ss;
31   dword *p;
32
33   dword *rl;
34   word *rm;
35   byte *rs;
36
37   int idx_size;
38 } darray;
39
40 int setbit(pb *B, int i,int x);
41 int setbits(pb *B, int i, int d, int x);
42 int getbit(pb *B, int i);
43 dword getbits(pb *B, int i, int d);
44 //unsigned int popcount(pb x);
45
46 int darray_construct(darray *da, int n, pb *buf,int opt);
47 int darray_select(darray *da, int i,int f);
48 int darray_rank(darray *da, int i);
49 int darray_pat_construct(darray *da, int n, pb *buf, int k, pb pat, int opt);
50 int darray_pat_select(darray *da, int i, pb (*getpat)(pb *));
51 int darray_pat_rank(darray *da, int i, pb (*getpat)(pb *));
52
53 int darray_select_bsearch(darray *da, int i, pb (*getpat)(pb *));
54
55 // Added by Diego Arroyuelo
56 void destroyDarray(darray *da);
57
58 #endif