WIDTHS="0 6 7 8 9 10 11 12 13 14"
# Which RadixThresholds we try
-THRS="100 500 1000 2500 5000"
+THRS="2000 4000 10000 20000 50000"
# Which sort-test tests we try
TESTS="2,5,8,15"
for (uns i=0; i<buckets; i++)
{
uns n = cnt[i] - pos;
- if (n < sorter_radix_threshold || shift < ASORT_MIN_SHIFT)
+ if (n * cts->elt_size < sorter_radix_threshold || shift < ASORT_MIN_SHIFT)
{
ctx->quicksort(buffer, n);
if (!swapped_output)
if (thr)
DBG("Thread %d: Finishing %d items, shift=%d", thr->id, w->num_elts, w->shift);
- if (w->shift < ASORT_MIN_SHIFT || w->num_elts < sorter_radix_threshold)
+ if (w->shift < ASORT_MIN_SHIFT || w->num_elts * ctx->elt_size < sorter_radix_threshold)
{
w->ctx->quicksort(w->in, w->num_elts);
if (w->swap_output)
ctx->num_elts * ctx->elt_size >= sorter_thread_threshold &&
!(sorter_debug & SORT_DEBUG_ASORT_NO_THREADS));
- if (ctx->num_elts < sorter_radix_threshold ||
+ if (ctx->num_elts * ctx->elt_size < sorter_radix_threshold ||
ctx->hash_bits <= ASORT_MIN_SHIFT ||
!ctx->radix_split ||
(sorter_debug & SORT_DEBUG_ASORT_NO_RADIX))