RadixSortLSD

Usage

use RadixSortLSD;

or

import RadixSortLSD;

Radix Sort Least Significant Digit

config const RSLSD_vv = false
const vv = RSLSD_vv
config const RSLSD_numTasks = here.maxTaskPar
const numTasks = RSLSD_numTasks
const Tasks = {0.. # numTasks}
const rsLogger = new Logger(logLevel, logChannel)
record KeysComparator
proc key(k)
record KeysRanksComparator
proc key(kr)
proc calcBlock(task: int, low: int, high: int)
proc calcGlobalIndex(bucket: int, loc: int, task: int): int
proc radixSortLSD(a: [?aD] ?t, checkSorted: bool = true): [aD] (t, int) throws
proc radixSortLSD_ranks(a: [?aD] ?t, checkSorted: bool = true): [aD] int throws

Radix Sort Least Significant Digit radix sort a block distributed array returning a permutation vector as a block distributed array

proc radixSortLSD_keys(a: [?aD] ?t, checkSorted: bool = true): [aD] t throws

Radix Sort Least Significant Digit radix sort a block distributed array returning sorted keys as a block distributed array

proc radixSortLSD_memEst(size: int, itemsize: int)
proc radixSortLSD_keys_memEst(size: int, itemsize: int)