\r
R.n = 2*n-1;\r
R.lgn = lg(n);\r
- fprintf(stderr,"Size of the result set : %i elements, %li kB\n", n,\r
- (((R.n+W-1)/W)*sizeof(int)/1024));\r
+ //fprintf(stderr,"Size of the result set : %i elements, %li kB\n", n,\r
+ //(((R.n+W-1)/W)*sizeof(int)/1024));\r
R.tree = (int*) malloc (((R.n+W-1)/W)*sizeof(int));\r
clearBit(R.tree,0); // clear all\r
return R;\r
\r
{ int answ;\r
if (!getBit(tree,pos)) return -1; // no answer\r
- pot--;\r
pos = (pos<<1)+1;\r
if (pos >= n) return 0; // when n is not a power of 2, missing leaves\r
+ pot--;\r
if ((p>>pot) == 0) // p goes left\r
{ answ = nextLarger(tree,n,p&~(1<<pot),pos,pot);\r
if (answ != -1) return answ;\r
// Naively implemented by kim\r
\r
unsigned int countResult(results R) {\r
- unsigned int result = 0;\r
+ unsigned int result = -1;\r
int i = 0;\r
while ( i != -1 && i < R.n) {\r
result ++; \r