tlx
|
Specialized Sorting Algorithms. More...
Namespaces | |
tlx::sort_networks::best | |
Implementation of best known sorting networks for up to sixteen elements. | |
tlx::sort_networks::bose_nelson | |
Implementation of Bose-Nelson sorting networks for up to sixteen elements. | |
tlx::sort_networks::bose_nelson_parameter | |
Implementation of Bose-Nelson sorting networks for up to sixteen elements processing parameters instead of an array. | |
tlx::sort_networks | |
Implementations of sorting networks for up to sixteen elements. | |
tlx::parallel_mergesort_detail | |
tlx::sort_strings_detail | |
Classes | |
class | CS_IfSwap< Comparator > |
Conditional swap implementation used for sorting networks: trivial portable C++ implementation with custom comparison method and std::swap(). More... | |
Parallel Sorting Algorithms | |
template<bool Stable, typename RandomAccessIterator , typename Comparator > | |
void | parallel_mergesort_base (RandomAccessIterator begin, RandomAccessIterator end, Comparator comp, size_t num_threads=std::thread::hardware_concurrency(), MultiwayMergeSplittingAlgorithm mwmsa=MWMSA_DEFAULT) |
Parallel multiway mergesort main call. More... | |
template<typename RandomAccessIterator , typename Comparator = std::less< typename std::iterator_traits<RandomAccessIterator>::value_type>> | |
void | parallel_mergesort (RandomAccessIterator begin, RandomAccessIterator end, Comparator comp=Comparator(), size_t num_threads=std::thread::hardware_concurrency(), MultiwayMergeSplittingAlgorithm mwmsa=MWMSA_DEFAULT) |
Parallel multiway mergesort. More... | |
template<typename RandomAccessIterator , typename Comparator = std::less< typename std::iterator_traits<RandomAccessIterator>::value_type>> | |
void | stable_parallel_mergesort (RandomAccessIterator begin, RandomAccessIterator end, Comparator comp=Comparator(), size_t num_threads=std::thread::hardware_concurrency(), MultiwayMergeSplittingAlgorithm mwmsa=MWMSA_DEFAULT) |
Stable parallel multiway mergesort. More... | |
String Sorting Algorithms | |
static void | sort_strings (unsigned char **strings, size_t size, size_t memory=0) |
Sort a set of strings represented by C-style uint8_t* in place. More... | |
static void | sort_strings (char **strings, size_t size, size_t memory=0) |
Sort a set of strings represented by C-style char* in place. More... | |
static void | sort_strings (const unsigned char **strings, size_t size, size_t memory=0) |
Sort a set of strings represented by C-style uint8_t* in place. More... | |
static void | sort_strings (const char **strings, size_t size, size_t memory=0) |
Sort a set of strings represented by C-style char* in place. More... | |
static void | sort_strings (std::vector< char * > &strings, size_t memory=0) |
Sort a set of strings represented by C-style char* in place. More... | |
static void | sort_strings (std::vector< unsigned char * > &strings, size_t memory=0) |
Sort a set of strings represented by C-style uint8_t* in place. More... | |
static void | sort_strings (std::vector< const char * > &strings, size_t memory=0) |
Sort a set of strings represented by C-style char* in place. More... | |
static void | sort_strings (std::vector< const unsigned char * > &strings, size_t memory=0) |
Sort a set of strings represented by C-style uint8_t* in place. More... | |
static void | sort_strings (std::string *strings, size_t size, size_t memory=0) |
Sort a set of std::strings in place. More... | |
static void | sort_strings (std::vector< std::string > &strings, size_t memory=0) |
Sort a vector of std::strings in place. More... | |
static void | sort_strings_lcp (unsigned char **strings, size_t size, uint32_t *lcp, size_t memory=0) |
Sort a set of strings represented by C-style uint8_t* in place. More... | |
static void | sort_strings_lcp (char **strings, size_t size, uint32_t *lcp, size_t memory=0) |
Sort a set of strings represented by C-style char* in place. More... | |
static void | sort_strings_lcp (const unsigned char **strings, size_t size, uint32_t *lcp, size_t memory=0) |
Sort a set of strings represented by C-style uint8_t* in place. More... | |
static void | sort_strings_lcp (const char **strings, size_t size, uint32_t *lcp, size_t memory=0) |
Sort a set of strings represented by C-style char* in place. More... | |
static void | sort_strings_lcp (std::vector< char * > &strings, uint32_t *lcp, size_t memory=0) |
Sort a set of strings represented by C-style char* in place. More... | |
static void | sort_strings_lcp (std::vector< unsigned char * > &strings, uint32_t *lcp, size_t memory=0) |
Sort a set of strings represented by C-style uint8_t* in place. More... | |
static void | sort_strings_lcp (std::vector< const char * > &strings, uint32_t *lcp, size_t memory=0) |
Sort a set of strings represented by C-style char* in place. More... | |
static void | sort_strings_lcp (std::vector< const unsigned char * > &strings, uint32_t *lcp, size_t memory=0) |
Sort a set of strings represented by C-style uint8_t* in place. More... | |
static void | sort_strings_lcp (std::string *strings, size_t size, uint32_t *lcp, size_t memory=0) |
Sort a set of std::strings in place. More... | |
static void | sort_strings_lcp (std::vector< std::string > &strings, uint32_t *lcp, size_t memory=0) |
Sort a vector of std::strings in place. More... | |
static void | sort_strings_parallel (unsigned char **strings, size_t size, size_t memory=0) |
Sort a set of strings in parallel represented by C-style uint8_t* in place. More... | |
static void | sort_strings_parallel (char **strings, size_t size, size_t memory=0) |
Sort a set of strings in parallel represented by C-style char* in place. More... | |
static void | sort_strings_parallel (const unsigned char **strings, size_t size, size_t memory=0) |
Sort a set of strings in parallel represented by C-style uint8_t* in place. More... | |
static void | sort_strings_parallel (const char **strings, size_t size, size_t memory=0) |
Sort a set of strings in parallel represented by C-style char* in place. More... | |
static void | sort_strings_parallel (std::vector< char * > &strings, size_t memory=0) |
Sort a set of strings in parallel represented by C-style char* in place. More... | |
static void | sort_strings_parallel (std::vector< unsigned char * > &strings, size_t memory=0) |
Sort a set of strings in parallel represented by C-style uint8_t* in place. More... | |
static void | sort_strings_parallel (std::vector< const char * > &strings, size_t memory=0) |
Sort a set of strings in parallel represented by C-style char* in place. More... | |
static void | sort_strings_parallel (std::vector< const unsigned char * > &strings, size_t memory=0) |
Sort a set of strings in parallel represented by C-style uint8_t* in place. More... | |
static void | sort_strings_parallel (std::string *strings, size_t size, size_t memory=0) |
Sort a set of std::strings in place in parallel. More... | |
static void | sort_strings_parallel (std::vector< std::string > &strings, size_t memory=0) |
Sort a vector of std::strings in place in parallel. More... | |
static void | sort_strings_parallel_lcp (unsigned char **strings, size_t size, uint32_t *lcp, size_t memory=0) |
Sort a set of strings in parallel represented by C-style uint8_t* in place. More... | |
static void | sort_strings_parallel_lcp (char **strings, size_t size, uint32_t *lcp, size_t memory=0) |
Sort a set of strings in parallel represented by C-style char* in place. More... | |
static void | sort_strings_parallel_lcp (const unsigned char **strings, size_t size, uint32_t *lcp, size_t memory=0) |
Sort a set of strings in parallel represented by C-style uint8_t* in place. More... | |
static void | sort_strings_parallel_lcp (const char **strings, size_t size, uint32_t *lcp, size_t memory=0) |
Sort a set of strings in parallel represented by C-style char* in place. More... | |
static void | sort_strings_parallel_lcp (std::vector< char * > &strings, uint32_t *lcp, size_t memory=0) |
Sort a set of strings in parallel represented by C-style char* in place. More... | |
static void | sort_strings_parallel_lcp (std::vector< unsigned char * > &strings, uint32_t *lcp, size_t memory=0) |
Sort a set of strings in parallel represented by C-style uint8_t* in place. More... | |
static void | sort_strings_parallel_lcp (std::vector< const char * > &strings, uint32_t *lcp, size_t memory=0) |
Sort a set of strings in parallel represented by C-style char* in place. More... | |
static void | sort_strings_parallel_lcp (std::vector< const unsigned char * > &strings, uint32_t *lcp, size_t memory=0) |
Sort a set of strings in parallel represented by C-style uint8_t* in place. More... | |
static void | sort_strings_parallel_lcp (std::string *strings, size_t size, uint32_t *lcp, size_t memory=0) |
Sort a set of std::strings in place in parallel. More... | |
static void | sort_strings_parallel_lcp (std::vector< std::string > &strings, uint32_t *lcp, size_t memory=0) |
Sort a vector of std::strings in place in parallel. More... | |
Specialized Sorting Algorithms.
void tlx::parallel_mergesort | ( | RandomAccessIterator | begin, |
RandomAccessIterator | end, | ||
Comparator | comp = Comparator() , |
||
size_t | num_threads = std::thread::hardware_concurrency() , |
||
MultiwayMergeSplittingAlgorithm | mwmsa = MWMSA_DEFAULT |
||
) |
Parallel multiway mergesort.
begin | Begin iterator of sequence. |
end | End iterator of sequence. |
comp | Comparator. |
num_threads | Number of threads to use. |
mwmsa | MultiwayMergeSplittingAlgorithm to use. |
Definition at line 376 of file parallel_mergesort.hpp.
void tlx::parallel_mergesort_base | ( | RandomAccessIterator | begin, |
RandomAccessIterator | end, | ||
Comparator | comp, | ||
size_t | num_threads = std::thread::hardware_concurrency() , |
||
MultiwayMergeSplittingAlgorithm | mwmsa = MWMSA_DEFAULT |
||
) |
Parallel multiway mergesort main call.
begin | Begin iterator of sequence. |
end | End iterator of sequence. |
comp | Comparator. |
num_threads | Number of threads to use. |
mwmsa | MultiwayMergeSplittingAlgorithm to use. |
Stable | Stable sorting. |
Definition at line 295 of file parallel_mergesort.hpp.
|
inlinestatic |
Sort a set of strings represented by C-style char* in place.
The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.
Definition at line 65 of file strings.hpp.
|
inlinestatic |
Sort a set of strings represented by C-style char* in place.
The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.
Definition at line 93 of file strings.hpp.
|
inlinestatic |
Sort a set of strings represented by C-style uint8_t* in place.
If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.
Definition at line 77 of file strings.hpp.
|
inlinestatic |
Sort a set of std::strings in place.
The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.
Definition at line 157 of file strings.hpp.
|
inlinestatic |
Sort a set of strings represented by C-style char* in place.
The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.
Definition at line 108 of file strings.hpp.
|
inlinestatic |
Sort a set of strings represented by C-style char* in place.
The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.
Definition at line 131 of file strings.hpp.
|
inlinestatic |
Sort a set of strings represented by C-style uint8_t* in place.
If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.
Definition at line 142 of file strings.hpp.
|
inlinestatic |
Sort a vector of std::strings in place.
The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.
Definition at line 172 of file strings.hpp.
|
inlinestatic |
Sort a set of strings represented by C-style uint8_t* in place.
If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.
Definition at line 119 of file strings.hpp.
|
inlinestatic |
Sort a set of strings represented by C-style uint8_t* in place.
If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.
Definition at line 50 of file strings.hpp.
|
inlinestatic |
Sort a set of strings represented by C-style char* in place.
The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.
Definition at line 204 of file strings.hpp.
|
inlinestatic |
Sort a set of strings represented by C-style char* in place.
The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.
Definition at line 234 of file strings.hpp.
|
inlinestatic |
Sort a set of strings represented by C-style uint8_t* in place.
If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.
Definition at line 217 of file strings.hpp.
|
inlinestatic |
Sort a set of std::strings in place.
The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.
Definition at line 302 of file strings.hpp.
|
inlinestatic |
Sort a set of strings represented by C-style char* in place.
The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.
Definition at line 250 of file strings.hpp.
|
inlinestatic |
Sort a set of strings represented by C-style char* in place.
The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.
Definition at line 275 of file strings.hpp.
|
inlinestatic |
Sort a set of strings represented by C-style uint8_t* in place.
If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.
Definition at line 287 of file strings.hpp.
|
inlinestatic |
Sort a vector of std::strings in place.
The strings are sorted as unsigned 8-bit characters, not signed characters! If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.
Definition at line 319 of file strings.hpp.
|
inlinestatic |
Sort a set of strings represented by C-style uint8_t* in place.
If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.
Definition at line 262 of file strings.hpp.
|
inlinestatic |
Sort a set of strings represented by C-style uint8_t* in place.
If the memory limit is non zero, possibly slower algorithms will be selected to stay within the memory limit.
Definition at line 187 of file strings.hpp.
|
inlinestatic |
Sort a set of strings in parallel represented by C-style char* in place.
The strings are sorted as unsigned 8-bit characters, not signed characters! The memory limit is currently not used.
Definition at line 62 of file strings_parallel.hpp.
|
inlinestatic |
Sort a set of strings in parallel represented by C-style char* in place.
The strings are sorted as unsigned 8-bit characters, not signed characters! The memory limit is currently not used.
Definition at line 88 of file strings_parallel.hpp.
|
inlinestatic |
Sort a set of strings in parallel represented by C-style uint8_t* in place.
The memory limit is currently not used.
Definition at line 73 of file strings_parallel.hpp.
|
inlinestatic |
Sort a set of std::strings in place in parallel.
The strings are sorted as unsigned 8-bit characters, not signed characters! The memory limit is currently not used.
Definition at line 150 of file strings_parallel.hpp.
|
inlinestatic |
Sort a set of strings in parallel represented by C-style char* in place.
The strings are sorted as unsigned 8-bit characters, not signed characters! The memory limit is currently not used.
Definition at line 103 of file strings_parallel.hpp.
|
inlinestatic |
Sort a set of strings in parallel represented by C-style char* in place.
The strings are sorted as unsigned 8-bit characters, not signed characters! The memory limit is currently not used.
Definition at line 125 of file strings_parallel.hpp.
|
inlinestatic |
Sort a set of strings in parallel represented by C-style uint8_t* in place.
The memory limit is currently not used.
Definition at line 136 of file strings_parallel.hpp.
|
inlinestatic |
Sort a vector of std::strings in place in parallel.
The strings are sorted as unsigned 8-bit characters, not signed characters! The memory limit is currently not used.
Definition at line 165 of file strings_parallel.hpp.
|
inlinestatic |
Sort a set of strings in parallel represented by C-style uint8_t* in place.
The memory limit is currently not used.
Definition at line 113 of file strings_parallel.hpp.
|
inlinestatic |
Sort a set of strings in parallel represented by C-style uint8_t* in place.
The memory limit is currently not used.
Definition at line 47 of file strings_parallel.hpp.
|
inlinestatic |
Sort a set of strings in parallel represented by C-style char* in place.
The strings are sorted as unsigned 8-bit characters, not signed characters! The memory limit is currently not used.
Definition at line 196 of file strings_parallel.hpp.
|
inlinestatic |
Sort a set of strings in parallel represented by C-style char* in place.
The strings are sorted as unsigned 8-bit characters, not signed characters! The memory limit is currently not used.
Definition at line 224 of file strings_parallel.hpp.
|
inlinestatic |
Sort a set of strings in parallel represented by C-style uint8_t* in place.
The memory limit is currently not used.
Definition at line 208 of file strings_parallel.hpp.
|
inlinestatic |
Sort a set of std::strings in place in parallel.
The strings are sorted as unsigned 8-bit characters, not signed characters! The memory limit is currently not used.
Definition at line 291 of file strings_parallel.hpp.
|
inlinestatic |
Sort a set of strings in parallel represented by C-style char* in place.
The strings are sorted as unsigned 8-bit characters, not signed characters! The memory limit is currently not used.
Definition at line 239 of file strings_parallel.hpp.
|
inlinestatic |
Sort a set of strings in parallel represented by C-style char* in place.
The strings are sorted as unsigned 8-bit characters, not signed characters! The memory limit is currently not used.
Definition at line 264 of file strings_parallel.hpp.
|
inlinestatic |
Sort a set of strings in parallel represented by C-style uint8_t* in place.
The memory limit is currently not used.
Definition at line 276 of file strings_parallel.hpp.
|
inlinestatic |
Sort a vector of std::strings in place in parallel.
The strings are sorted as unsigned 8-bit characters, not signed characters! The memory limit is currently not used.
Definition at line 307 of file strings_parallel.hpp.
|
inlinestatic |
Sort a set of strings in parallel represented by C-style uint8_t* in place.
The memory limit is currently not used.
Definition at line 251 of file strings_parallel.hpp.
|
inlinestatic |
Sort a set of strings in parallel represented by C-style uint8_t* in place.
The memory limit is currently not used.
Definition at line 180 of file strings_parallel.hpp.
void tlx::stable_parallel_mergesort | ( | RandomAccessIterator | begin, |
RandomAccessIterator | end, | ||
Comparator | comp = Comparator() , |
||
size_t | num_threads = std::thread::hardware_concurrency() , |
||
MultiwayMergeSplittingAlgorithm | mwmsa = MWMSA_DEFAULT |
||
) |
Stable parallel multiway mergesort.
begin | Begin iterator of sequence. |
end | End iterator of sequence. |
comp | Comparator. |
num_threads | Number of threads to use. |
mwmsa | MultiwayMergeSplittingAlgorithm to use. |
Definition at line 399 of file parallel_mergesort.hpp.