Lines Matching refs:grp
132 static void sfxbsort(Vcsfx_t* sfx, Vcsfxint_t* grp)
134 static void sfxbsort(sfx, grp)
136 Vcsfxint_t* grp;
144 memset(grp, 0, 256*256*sizeof(Vcsfxint_t)); /* get frequencies */
146 grp[(i<<8) + (j = *++s)] += 1;
148 for(n = 0, g = grp, i = 0; i < 256; ++i)
159 inv[n++] = grp[v]-1; /* rank is highest position of group */
163 idx[grp[v] -= 1] = n++; /* put suffix into its bucket */
166 grp[256*256] = sfx->nstr; /* end of 255*255-group */
311 static void sfxcsort(Vcsfx_t* sfx, Vcsfxint_t y, Vcsfxint_t* grp)
313 static void sfxcsort(sfx, y, grp)
316 Vcsfxint_t* grp; /* bounds of xy-groups */
326 if((omin = grp[y<<8]) > (omax = grp[(y<<8)+256]-1) )
331 { l = GMIN(grp,x,y); r = GMAX(grp,x,y,endc);
356 static int sfxosort(Vcsfx_t* sfx, Vcsfxint_t x, Vcsfxint_t* grp, int dir)
358 static int sfxosort(sfx, x, grp, dir)
361 Vcsfxint_t* grp;
379 if((l = GMIN(grp,x,y)) >= (r = GMAX(grp,x,y,endc)) )
412 l = grp[(x<<8) + TYPECAST(Vcsfxint_t,nd->label)]; r = inv[idx[l]];
433 Vcsfxint_t grp[256*256+1];
454 sfxbsort(sfx, grp); /* sort suffixes by first 2 bytes */
463 { if(x == y || (l = GMIN(grp,x,y)) >= (r = GMAX(grp,x,y,endc)) )
472 { if(grp[x<<8] > (grp[(x<<8)+256]-1) )
474 if(sfxosort(sfx, x, grp, d) < 0)
476 sfxcsort(sfx, x, grp);
492 { if(grp[x<<8] > (grp[(x<<8)+256]-1) )
497 { if(x == y || (l = GMIN(grp,x,y)) >= (r = GMAX(grp,x,y,endc)) )
520 if(sfxosort(sfx, x, grp, 0) < 0)
522 sfxcsort(sfx, x, grp); /* copy-sort */