int i,m;
int nl;
int p,pp;
- int il,is,ml,ms;
+ int il,is,ms,ml;
int r;
uint *s;
for(int k=0;k<nl+1;k++) select->p[k]=0;
select->size += (nl+1)*sizeof(uint);
+
for (r = 0; r < 2; r++) {
ml = ms = 0;
for (il = 0; il < nl; il++) {
select->lp[il] = pp;
i = min((il+1)*L-1,m-1);
p = s[i];
- //printf("%d ",p-pp);
+ // printf("p-pp=%d, LL=%d\n",p-pp, LL);
+
if (p - pp >= LL) {
if (r == 1) {
for (is = 0; is < L; is++) {
select->sl[ml*L+is] = s[il*L+is];
}
}
+
select->p[il] = -((ml<<logL)+1);
ml++;
}
ms++;
}
}
+
if (r == 0) {
select->sl = new uint[ml*L+1];
for(int k=0;k<ml*L+1;k++) select->sl[k]=0;