Lines Matching defs:width
41 static void cycle(size_t width, unsigned char* ar[], int n)
52 while(width) {
53 l = sizeof(tmp) < width ? sizeof(tmp) : width;
59 width -= l;
88 static void sift(unsigned char *head, size_t width, cmpfun cmp, int pshift, size_t lp[])
96 rt = head - width;
97 lf = head - width - lp[pshift - 2];
112 cycle(width, ar, i);
115 static void trinkle(unsigned char *head, size_t width, cmpfun cmp, size_t pp[2], int pshift, int trusty, size_t lp[])
134 rt = head - width;
135 lf = head - width - lp[pshift - 2];
149 cycle(width, ar, i);
150 sift(head, width, cmp, pshift, lp);
154 void qsort(void *base, size_t nel, size_t width, cmpfun cmp)
157 size_t i, size = width * nel;
166 high = head + size - width;
168 /* Precompute Leonardo numbers, scaled by element width */
169 for(lp[0]=lp[1]=width, i=2; (lp[i]=lp[i-2]+lp[i-1]+width) < size; i++);
173 sift(head, width, cmp, pshift, lp);
178 trinkle(head, width, cmp, p, pshift, 0, lp);
180 sift(head, width, cmp, pshift, lp);
193 head += width;
196 trinkle(head, width, cmp, p, pshift, 0, lp);
208 trinkle(head - lp[pshift] - width, width, cmp, p, pshift + 1, 1, lp);
211 trinkle(head - width, width, cmp, p, pshift, 1, lp);
213 head -= width;