git-svn-id: svn+ssh://idea.nguyen.vg/svn/sxsi/trunk/XMLTree@352
3cdefd35-fc62-479d-8e8d-
bae585ffb9ca
if (i == 0) return -1;
d = select->d;
if (i == 0) return -1;
d = select->d;
- if(select->lasti==(uint)i-1) {
+ /*if(select->lasti==(uint)i-1) {
while(!__getbit2(select->sd1->buf,++select->lasts));
}
else {
select->lasts = selectd2_select(select->sd1,i,1);
}
while(!__getbit2(select->sd1->buf,++select->lasts));
}
else {
select->lasts = selectd2_select(select->sd1,i,1);
}
- x = (select->lasts-(i-1)) << d;
+ x = selectd2_select(select->sd1,i,1) - (i-1);
+ //x = (select->lasts-(i-1)) << d;
+ x <<= d;
x += __getbits(select->low,(i-1)*d,d);
return x;
}
int selects3_selectnext(selects3 *select, int i) {
x += __getbits(select->low,(i-1)*d,d);
return x;
}
int selects3_selectnext(selects3 *select, int i) {
- return selects3_select(select,selects3_rank(select,i)+1);
+ //return selects3_select(select,selects3_rank(select,i)+1);
int d,x,w,y;
int r,j;
int z,ii;
int d,x,w,y;
int r,j;
int z,ii;
uint *low;
selectd2 *sd0,*sd1;
uint hi_len, low_len;
uint *low;
selectd2 *sd0,*sd1;
uint hi_len, low_len;
} selects3;
int selects3_construct(selects3 *select, int n, uint *buf);
} selects3;
int selects3_construct(selects3 *select, int n, uint *buf);
if(ones)
selects3_construct(&sd,len,tmp_seq);
this->len = len;
if(ones)
selects3_construct(&sd,len,tmp_seq);
this->len = len;
//this->ones = sd.m;
delete [] tmp_seq;
}
//this->ones = sd.m;
delete [] tmp_seq;
}