Lines Matching refs:pile
59 sort_key_t *pile[256];
152 * Convert the bin sizes to pointers to where each pile goes.
154 * pile[0] = first_key + bin->size[0],
155 * pile[1] = pile[0] + bin->size[1], etc.
157 * After the keys are moved to the appropriate pile, we'll need to sort each of the piles by the
158 * next radix position. A new task is put on the stack for each pile containing lots of keys, or a
159 * new task is put on the list for each pile containing few keys.
164 * @pile: array for pointers to the end of each pile
165 * @bins: the histogram of the sizes of each pile
173 struct task **list, sort_key_t *pile[],
200 pile[bin] = pile_start;
239 sort_key_t **pile = sorter->pile;
264 * onto the stack for each radix-sorted pile. When all tasks and sub-tasks have been
279 * and push a new task to sort each pile by the next radix byte.
283 &insertion_task_list, pile, bins, task.first_key,
293 * Don't bother processing the last pile: when piles 0..N-1 are all in place, then
294 * pile N must also be in place.
304 * The radix byte of the key tells us which pile it belongs in. Swap it for
305 * an unprocessed item just below that pile, and repeat.
307 while (--pile[bin = key[task.offset]] > fence)
308 swap_keys(pile[bin], &key);
311 * The pile reached the fence. Put the key at the bottom of that pile,
312 * completing it, and advance the fence to the next pile.