Home | History | Annotate | Download | only in stdlib

Lines Matching refs:last

110 typedef struct { char * first; char * last; } stack_entry;
111 #define pushLeft {stack[stacktop].first=ffirst;stack[stacktop++].last=last;}
112 #define pushRight {stack[stacktop].first=first;stack[stacktop++].last=llast;}
113 #define doLeft {first=ffirst;llast=last;continue;}
114 #define doRight {ffirst=first;last=llast;continue;}
117 last=llast=stack[stacktop].last;\
133 * 3. We choose a pivot by looking at the first, last
187 { size_t l=last-ffirst,r=llast-first; \
199 if ((size_t)(last-first)>PIVOT_THRESHOLD*sz) mid=pivot_big(first,mid,last,sz,compare);\
202 if (compare(mid,last)>0) { \
203 swapper(mid,last); \
208 if (compare(mid,last)>0) swapper(first,last)\
211 if (compare(mid,last)>0) swapper(mid,last);\
214 first+=sz; last-=sz; \
226 while (compare(pivot,last)<0) last-=sz; \
227 if (first<last) { \
228 swapper(first,last); swapped=1; \
229 first+=sz; last-=sz; } \
230 else if (first==last) { first+=sz; last-=sz; break; }\
231 } while (first<=last); \
242 last=first + (nmemb>limit ? limit : nmemb-1)*sz;\
243 while (last!=base) { \
244 if (compare(first,last)>0) first=last; \
245 last-=sz; } \
250 last=((char*)base)+nmemb*size; \
251 for (first=((char*)base)+size;first!=last;first+=size) { \
282 static char * pivot_big(char *first, char *mid, char *last, size_t size,
284 size_t d=(((last-first)/size)>>3)*size;
302 { char *a=last-2*d, *b=last-d, *c=last;
325 char *first,*last;
330 first=(char*)base; last=first+(nmemb-1)*size;
332 if ((size_t)(last-first)>trunc) {
333 char *ffirst=first, *llast=last;
336 { char * mid=first+size*((last-first)/size >> 1);
356 char *first,*last;
361 first=(char*)base; last=first+(nmemb-1)*size;
363 if ((size_t)(last-first)>trunc) {
364 char *ffirst=first,*llast=last;
367 { char * mid=first+size*((last-first)/size >> 1);
387 char *first,*last;
391 first=(char*)base; last=first+(nmemb-1)*WORD_BYTES;
393 if (last-first>TRUNC_words) {
394 char *ffirst=first, *llast=last;
399 (last-(char*)base)/WORD_BYTES);
402 { char * mid=first+WORD_BYTES*((last-first) / (2*WORD_BYTES));
417 last=((char*)base)+nmemb*WORD_BYTES;
418 for (first=((char*)base)+WORD_BYTES;first!=last;first+=WORD_BYTES) {